2015-10-28 2 views
0

У меня есть вектор Cycle(), который может содержать несколько элементов с переменным размером.Извлечь значения из вектора и сохранить в новом векторе

Я хочу, чтобы извлечь из этого вектора всех значений, которые находятся в нечетных столбцах, то есть цикла (1), цикл (3), цикл (5) ... и сохранить их в новый векторе Rcycle.

Вот мой код:

Rcycle = zeros(1, length(cycle)/2); 
Rcycle(1) = cycle(1); 
for j=3:length(cycle); 
    for i=2:length(Rcycle); 
     Rcycle(i) = cycle(j); 
     j = j+2; 
    end 
end 

Кроме того, я хочу, чтобы извлечь из цикла() четных столбцов и сохранить их в векторе Lcycle. Мой код:

Lcycle = zeros(1, length(cycle)/2); 
Lcycle(1) = cycle(2); 
for k=4:length(cycle); 
    for i=2:length(cycle); 
     Lcycle(i) = cycle(k); 
     k = k+2; 
    end 
end 

Выполнив это для образца цикла() с 12 элементами, которые я получаю правильные результаты для Lcycle, но не те для Rcycle. Также я получаю ошибку, что моя матрица превысила ее размер.

Есть ли у кого-нибудь идеи, как решить эту проблему более плавным образом?

ответ

1

Использование векторного индексирования!

Rcyle=cycle(1:2:end); %// Take from cycle starting from 1, each 2, until the end 
Lcycle=cycle(2:2:end);%// same, but start at 2. 
+0

Работает отлично, спасибо! –

Смежные вопросы