我有一串英文字母,我想用第二个交换第一个元素,依此类推。我正在使用此代码:
for a = 1:25;
b= 1;
k(a)= k(a+b);
end
我不知道它是否是正确的方法。任何帮助将不胜感激
答案 0 :(得分:3)
这应该有效,假设数组的长度是均匀的。
k = 'abcdefghijklmnop'
temp = k;
k(1:2:end) = temp(2:2:end);
k(2:2:end) = temp(1:2:end)
我得到的结果是
k =
badcfehgjilknmpo
编辑:Luis Mendo提到了一个更好的方法:
k([1:2:end 2:2:end]) = k([2:2:end 1:2:end])
答案 1 :(得分:-1)
交换意味着第一个元素必须具有第二个元素的数据,第二个元素必须具有第一个数据。
在你的代码中,你为第一个元素分配了第二个元素的数据,但是你不应该反过来。
i=0;
k=[1,2,3,4,5,6,7,8,9,10];
b=1;
for a= 1:5
t=k(a+i);
k(a+i)=k(a+b+i);
k(a+b+i)=t;
i=i+1;
end