Storage of first few values in an array but with an if condition
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Sandip Ghatge
am 18 Mai 2020
Bearbeitet: Sandip Ghatge
am 21 Mai 2020
I am stuck here, because when i write the following code to take in values lesser than or equal to 0.20 and greater than or equal to 0.12, it takes all the values of the first column <= 0.20 and >=0.12. The desired result is taking in first set of values, lesser than or equal to 0.2 and greater than or equal to 0.12 and not all the values.
The code is,
A = [0.25;0.12;0.18;0.21;0.26;0.18;0.19;0.25;0.26;0.12;0.18;0.21];
B = [A(A(:,1) <= 0.20 & A(:,1) >= 0.12,1)];
The output of this is,
B =
0.1200
0.1800
0.1800
0.1900
0.1200
0.1800
What i am desiring is
B =
0.12
0.18
2 Kommentare
Akzeptierte Antwort
Rik
am 18 Mai 2020
Bearbeitet: Rik
am 18 Mai 2020
If you want to find the first block of true in L, you can use this code:
A = [0.25;0.12;0.18;0.21;0.26;0.18;0.19;0.25;0.26;0.12;0.18;0.21];
L=A(:,1) <= 0.20 & A(:,1) >= 0.12;
ind1=find(L,1);%first location within L
ind2=find(diff(L)==-1,1);%last location within L
if isempty(ind2),ind2=numel(A);
B=A(ind1:ind2)
Original answer:
Assuming you also wanted the 0.19:
A = [0.25;0.12;0.18;0.21;0.26;0.18;0.19;0.25;0.26;0.12;0.18;0.21];
L=A(:,1) <= 0.20 & A(:,1) >= 0.12;%put in a different variable for readability
B = A(L);
B=unique(B,'stable');%don't sort values
Weitere Antworten (1)
Guillaume Le Goc
am 18 Mai 2020
A = [0.25;0.12;0.18;0.21;0.26;0.18;0.19;0.25;0.26;0.12;0.18;0.21];
ids = find(A<=0.2 & A>=0.12, 2); % second argument specifies you want only the first 2 elements that match the condition
B = A(ids);
Or directly :
A = [0.25;0.12;0.18;0.21;0.26;0.18;0.19;0.25;0.26;0.12;0.18;0.21];
B = A(find(A<=0.2 & A>=0.12, 2));
3 Kommentare
Rik
am 20 Mai 2020
If this answer doesn't solve your question, why did you accept it?
After your comment I have edited my answer. Did you see that?
Siehe auch
Kategorien
Mehr zu Matrix Indexing 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!