“if” statement using “or” operator.
Mostra commenti meno recenti
Hello everyone,
I have a very simple question....and I have been working on it for some time but cannot figure it out. This is essentially what I would LIKE to say:
for r = 1:length(FreqSec)-1
if FreqSec(1,r+1) > FreqSec(r)*1.01 "OR" FreqSec(1,r+1) <FreqSec(r)*0.99
LagStart = [FreqSec(1,r) r];
break;
end
end
FreqSec is a vector with lots and lots of values....generally within the range of 0.99 and 1.01, except for in a certain interval. I want to detect the exact index point at which the values start changing from the 0.99 to 1.01 range.
Thanks for the help in advance :)
1 Commento
Aaron Eldridge
il 28 Apr 2016
The "||" counts as an or on matlab
Risposta accettata
Più risposte (2)
Geoff
il 3 Feb 2012
So you want the last index within the valid range?
I don't know why you are multiplying by 1.01 and 0.99. Perhaps you have described the problem incorrectly or that is the cause of your difficulties. What I think you are trying to do is this:
idx = find( FreqSec >= 0.99 & FreqSec <= 1.01, 1, 'last' )
LagStart = [FreqSec(1,idx) idx];
Or, since it's symmetric:
idx = find( abs(FreqSec-1) <= 0.01, 1, 'last' )
If instead you want the index of the first out-of-range value, use:
idx = find( abs(FreqSec-1) > 0.01, 1, 'first' )
The parameter 'first' is optional, but good for clarity.
-g-
1 Commento
Geoff
il 3 Feb 2012
Oops, those statements with 'last' are incorrect. You are probably better off doing the 'first' statement and subtracting 1.
Rehman Tabasum
il 30 Apr 2021
0 voti
i=5
while i>=-1
pause(1)
fprintf('%d\n',i)
i=i-1
if i==0
break
end
end
this is my code for the start button gui for countdown timer so anyone know how to stop coutdown timer when it is runnnig
Categorie
Scopri di più su Loops and Conditional Statements in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!