0

我是 Matlab 的新手。我有一个向量v = [3 5 7 9 11]。我需要改变一些元素的顺序。例如:

v = [3 7 5 9 11] %// by moving "5" after "7" or
v = [3 5 9 7 11] %// by moving "9" before "7"

在Java中,我可以简单地使用

Collections.rotate(array.subList(new_index,old_index ),1);

MATLAB 中是否有像 Java 这样的单行代码来执行此操作?谢谢你的帮助。

4

2 回答 2

4

就在这里:

v(new_index) = v(old_index);

其中new_indexold_index可以是向量。在您的示例中:

v([2 3]) = v([3 2]);
v([3 4]) = v([4 3]);
于 2013-09-06T12:10:42.393 回答
0

当然:

>> v = [3 5 7 9 11];
>> v([1 3 2 4 5])    % moving "5" after "7" 
>> v([1 2 4 3 5])    % moving "9" before "7" 
于 2013-09-06T12:12:51.720 回答