find first time 0 again after higher 0
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Frederik Reese
il 17 Giu 2022
Commentato: Star Strider
il 19 Giu 2022
Hi,
probably a simple question, but How can I find the Value (index) in each row of a matrix, which is after some values higher than 0 is 0 again?
for example this row in a matrix:
0 0 0 0.0619999999999550 0.108000000000004 0.129999999999995 0.156999999999982 0.176999999999964 0.185000000000002 0.189999999999998 0.187999999999988 0.187999999999988 0.185999999999979 0.182999999999993 0.180999999999983 0.176999999999964 0.170999999999992 0.164999999999964 0 0
I want to know the index of this row at the big black 0.
Thanks
0 Commenti
Risposta accettata
Star Strider
il 17 Giu 2022
One approach —
M = [0 0 0 0.0619999999999550 0.108000000000004 0.129999999999995 0.156999999999982 0.176999999999964 0.185000000000002 0.189999999999998 0.187999999999988 0.187999999999988 0.185999999999979 0.182999999999993 0.180999999999983 0.176999999999964 0.170999999999992 0.164999999999964 0 0 ]
idx = M~=0; % Logical Index
Out = strfind(idx, [1 0])+1 % Desired Index
Check = M((-1:1)+Out) % Check Result
Thius should be reasonably robust to similar problems.
.
2 Commenti
Star Strider
il 19 Giu 2022
As always, my pleasure!
D_HQ5000_WH = [randi([0 1], 1, 10); zeros(1,10); randi([0 1], 1, 10); ones(1,10)]
for i = 1:size(D_HQ5000_WH,1)
idx = D_HQ5000_WH(i,:)~=0; % Logical Index
Out = NaN;
if any(idx) & ~all(idx)
Out = strfind(idx, [1 0])+1; % Desired Index
end
Check = Out % Delete Later
end
I assigned ‘Out’ to NaN if either ‘idx’ has all the elements true or all the elements false. This traps conditions where all the elements are zero or none are zero, and sets those results to NaN. (It does not trap situations where there is more than one transition, so I assume that never occurs in practise.)
.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!