2015-01-01 2 views
-1

У меня есть размер матрицы, скажем 30 * 200. Я хочу извлечь каждую строку и назначить ее другой переменной, чтобы я мог обращаться к каждой строке. Я хочу, чтобы он отображался как p(1)=a(1,:) и так далее. Я хочу извлечь все 30 строк. Я не знаю, как это сделать в MATLAB при генерации ошибкиНазначить извлеченную строку другой переменной

оба вектора должны иметь одинаковую длину.

+0

Что вы попробовали? Всегда отправляйте свой код. – ianaya89

ответ

0

Попробуйте

p = a(1,:); %// p is now 1-by-200 row vector 

В цикле

for ii=1:size(a,1) 
    p = a(ii,:); %// get the ii-th row 
    %// manipulate the row here... 
end 
0

Я не могу видеть немедленное преимущество в письменной форме что-то вроде p(r) вместо a(r,:), также это не представляется возможным. Тем не менее, вы можете хранить векторы в массивах ячеек. К ним можно получить фигурные наручи, чтобы можно было получить доступ к p{r}.

a = rand(30, 200); %// the 30x200 matrix a 
p = cell(size(a,1), 1); %// initiate the cell of needed size 

%// iterate over rows r 
for r = 1:size(a,1) 
    p{r} = a(r,:); %// now p{r} == a(r,:) 
end 
Смежные вопросы