Borrar filtros
Borrar filtros

How to split a nxn matrix into n vectors

1 visualización (últimos 30 días)
Max
Max el 16 de Nov. de 2012
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
  2 comentarios
Yash
Yash el 16 de Nov. de 2012
reshape it.
Max
Max el 16 de Nov. de 2012
How? I try
[X Y]= size(M)
a=reshape(M,X,Y);
but a == M
(I certainly wrong)

Iniciar sesión para comentar.

Respuesta aceptada

Max
Max el 17 de Nov. de 2012
Editada: Max el 17 de Nov. de 2012
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?

Más respuestas (3)

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

Iniciar sesión para comentar.


Jan
Jan el 16 de Nov. de 2012
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 comentarios
Andrei Bobrov
Andrei Bobrov el 16 de Nov. de 2012
Editada: Andrei Bobrov el 16 de Nov. de 2012
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 el 16 de Nov. de 2012
"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.

Iniciar sesión para comentar.


Matt Fig
Matt Fig el 16 de Nov. de 2012
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.

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by