How can I divide a matrix in to vectors?

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

Risposte (3)

Matt Fig
Matt Fig il 6 Giu 2011

2 voti

Please read this link before you even think about creating many vectors from an array like this:
phani
phani il 6 Giu 2011

0 voti

hi ami try this c1=C(1,:); c2=C(2,:);
i hope it will work.
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 Commento

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.

Accedi per commentare.

Categorie

Richiesto:

Ami
il 6 Giu 2011

Community Treasure Hunt

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

Start Hunting!

Translated by