How to split a nxn matrix into n vectors

1 次查看(过去 30 天)
Hi at all, I want to split a nxn matrix in n vectors:
M= [1 2 3 ; 4 5 6 ; 7 8 9];
in
m1 = [1 2 3];
m2 = [4 5 6];
m3 = [7 8 9];
I know that m1=M(1,:);
m2=M(2,:) ... ...
m(n)=M(n,:)
but if the matrix is very large how can I resolve? Thanks a lot
Max

采纳的回答

Max
Max 2012-11-17
编辑:Max 2012-11-17
Ok, thanks at everybody!
Sorry for the wrong word but i not speak English very goog; with struct I mean cell array, sorry ;)
However, how i can have single value in one cell?

更多回答(3 个)

Andrei Bobrov
Andrei Bobrov 2012-11-16
m = num2cell(M,2);
your m1 -> m{1}
  1 个评论
Max
Max 2012-11-16
Thanks, but I need separate values in the vector... not "all in one" :D

请先登录,再进行评论。


Jan
Jan 2012-11-16
Using a list of variable like "m1, m2, ..." is a really bad idea and it increases the complexity of programs without any advantage. Andrei's suggestion to use a cell array is much better. See
  3 个评论
Andrei Bobrov
Andrei Bobrov 2012-11-16
编辑:Andrei Bobrov 2012-11-16
eg
M= [1 2 3 ; 4 5 6 ; 7 8 9];
m = num2cell(M,2);
out = polyder(m{1:2}); % for your version out = polyder(m1,m2);
Jan
Jan 2012-11-16
"Struct"? Structs have field names, but I do not see any field names here. Do you mean "cell array"?
I think that Andrei has guessed already, what you are trying to do. But in general in is more efficient, when you explain exactly, what you are trying to do.

请先登录,再进行评论。


Matt Fig
Matt Fig 2012-11-16
Jan is correct. Doing this is a bad idea. If you need to use the POLYDER function on each row of a large array, there are several ways to do it without making many variables.
M = randi(4,6,4);
N = num2cell(M,2);
PD = cellfun(@polyder,N,'Un',0)
Now PD{1} is the POLYDER of M(1,:), PD{2} is the POLYDER of M(2,:), etc.

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by