use logical indexing to access multiple lines syntax

1 Ansicht (letzte 30 Tage)
Hew McKean
Hew McKean am 28 Sep. 2018
Kommentiert: Hew McKean am 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 : )

Akzeptierte Antwort

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

Weitere Antworten (1)

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

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by