How can I divide a matrix in to vectors?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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
0 commentaires
Réponses (3)
Matt Fig
le 6 Juin 2011
Please read this link before you even think about creating many vectors from an array like this:
0 commentaires
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
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.
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!