2013-09-06 3 views
0

Я новичок в Matlab. У меня есть вектор v = [3 5 7 9 11]. Мне нужно изменить порядок некоторых элементов. Например:matlab изменение положения элемента вектора

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, чтобы сделать это? Спасибо за помощь.

+3

вы называете это "просто"? :) –

+0

@RodyOldenhuis Я начинаю понимать, почему они говорят, что Java - это подробный язык :-D –

ответ

4

Да, есть:

v(new_index) = v(old_index); 

где new_index и old_index могут быть векторами. В ваших примерах:

v([2 3]) = v([3 2]); 
v([3 4]) = v([4 3]); 
+0

он сработал, спасибо. – Ecrin

0

Sure:

>> 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" 
Смежные вопросы