use logical indexing to access multiple lines syntax

1 vue (au cours des 30 derniers jours)
Hew McKean
Hew McKean le 28 Sep 2018
Commenté : Hew McKean le 28 Sep 2018
Still a noob, I try to make my questions coherent... glad to learn
I have a multi-column matrix p552r1_tnL (14918x44 double)
In the second column, I want to find the highest values, so I did this...
>> p = (p552r1_tnL(:,2))>0.85*max(p552r1_tnL(:,2));
>> sum(p)
% sum(p) is 40 so getting the highest 40 values is a good start... so that gets my matrix way down,
now I just want to get the values in the first three columns of p552r1 based on that logical matrix... I can get it to give me a single column, but can't work out how to get multiple...
p552r1kmeans = p552r1_tnL(p); %ok, so it gets me one column
So I've tried
p552r1kmeans (:,1:3)= p552r1_tnL(p); %Error: matrix sides don't match
p552r1kmeans (:,1:3)= p552r1_tnL(:,1:3)(p); %Error: ()-indexing must appear last in an indexing expression, which I don't get since (p) is last
Thank you for the help : )

Réponse acceptée

Fangjun Jiang
Fangjun Jiang le 28 Sep 2018
temp=p552r1_tnL(p,1:3)

Plus de réponses (1)

Dennis
Dennis le 28 Sep 2018
Almost there ;) in p you have the row positions:
p552r1kmeans=p552r1_tnL(p,1:3)

Catégories

En savoir plus sur Matrices and Arrays 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!

Translated by