2012-05-23 2 views
0

i am beginner in MATLAB. Мне нужно создать цикл, который выберет несколько строк каскадной последовательности из матрицы и создаст новую матрицу, которая отобразит элементы выбранных строк в столбцах. Например:петля для выбора последовательных рядов прокатки матрицы

а =

1  2  3 
4  5  6 
7  8  9 
10 11 12 

петля = 2, то есть, чтобы выбрать прокатку 2 последовательных рядов, строки 1 & 2 строки 2 & 3 строка 3 & 4,)

ожидаемых результатом будет следующая матрица: б =

1  4  7 
2  5  8 
3  6  9 
4  7 10 
5  8 11 
6  9 12 

элементы выбранных строк должны быть помещены в новую матрицу в столбцах.

В любом случае я могу это сделать?

БЛАГОДАРЯ

ответ

0

Это зависит от того, как вообще вы хотите, чтобы сделать это. У вас много невысказанных предположений в вашем вопросе, и «перекатывание» - это двусмысленный термин. Для вашего конкретного случая, для ввода матрицы А, «петля» = п:

function B = rollup(A,n) 
B = []; 
for i = 1:n 
    Btemp = transpose(A(i:i+2,:)); 
    B = [B;Btemp]; 
end 

Обратите внимание, что это будет работать только с очень конкретном случае, когда у вас есть три колонки, и вы не можете иметь п> l- 2 где l - количество строк.

+0

GREAT !!, большое вам спасибо – mario

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