Split a matrix into a two submatrixes by a condition
Afficher commentaires plus anciens
Let "ex3" a matrix with an arbitrary length, which first column is gender (binary 0 or 1 for male o female), the second is age, the third is wage. How can I split this matrix into two submatrixes by gender using "for" and "if" functions? After that, i have to plot the wage versus the age, using plus sign (+) as a marker style for women and a circle (O) for men.
Anybody can give me an answer? I suppose that are few lines of code.
For the first part I've tried this:
for i=1:11
if ex3(i,1)==0
A=ex3(i,:)
else
B=ex3(i,:)
end
end
but this doesn't return me 2 matrixes, but a series of vectors.
2 commentaires
Iain
le 2 Oct 2014
Is there a reason you're restricting yourself to if and for?
Gino Franco
le 2 Oct 2014
Réponse acceptée
Plus de réponses (1)
Iain
le 2 Oct 2014
This is the "simple" answer:
male = ex3(find(ex3(:,1) == 1),:);
female = ex3(find(ex3(:,1) == 0),:);
1 commentaire
Mohammad Abouali
le 7 Oct 2014
Modifié(e) : Mohammad Abouali
le 7 Oct 2014
You don't even need find . Look at the two last line of code in my answer.
Catégories
En savoir plus sur Logical dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!