How can I divide a matrix in to vectors?

2 vues (au cours des 30 derniers jours)
Ami
Ami le 6 Juin 2011
C = [0 0 0 0 1; 1 0 0 0 0; 0 0 0 1 0; 0 0 1 0 0; 0 1 0 0 0;]
need something like this
c1=[0 0 0 0 1]
c2=[1 0 0 0 0]
I try to do it like this, but it doesn't work
for j=1:c for i=0:5 vector=1:5; end end

Réponses (3)

Matt Fig
Matt Fig le 6 Juin 2011
Please read this link before you even think about creating many vectors from an array like this:

phani
phani le 6 Juin 2011
hi ami try this c1=C(1,:); c2=C(2,:);
i hope it will work.

Andrei Bobrov
Andrei Bobrov le 6 Juin 2011
variant 1
Ccell = mat2cell(C,ones(size(C,1),1),size(C,2));
[C1,C2,C3,C4,C5] = Ccell{:};
variant 2
for jj = 1:size(C,1)
js = num2str(jj);
eval(['C', js , '= C(',js,',:)'] );
end
  1 commentaire
Jan
Jan le 6 Juin 2011
I really think, that the first line "Ccell = mat2cell(C,ones(size(C,1),1),size(C,2))" is enough already. Then the searched variables are Ccell{1}, Ccell{2}, etc. This would be more efficient than creating C1, C2, ... dynamically.
Although your answer matches the question exactly, I'm prefering Matt's "there are better ways" answer.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by