Anonymous functions and conditional logic? (one line step function)
26 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Adam Attarian
am 28 Okt. 2011
Kommentiert: Walter Roberson
am 26 Mär. 2022
Hi Folks,
It looks like you can't use conditional logic in an anonymous function -- which is too bad because I'm trying to do a step function as an anon function. I'd like to do it as a one liner, something like:
step = @(t) if t>t0 return a, elseif t<=t0 return b, end,
but MATLAB doesn't like that of course. In my case, a=10e-4 and b=10e-6, just in case anyone is wondering. Is there something similar that I can do? I've been trying to modify tanh(x) to go from a to b, but I can't quite get the syntax right. I'd like an anon fun because it would be an element in a structure array if I get this coded right.
Thanks for the help! Adam
0 Kommentare
Akzeptierte Antwort
Fangjun Jiang
am 28 Okt. 2011
It can be done in a twisted way. I am not sure how much value it provides. step is a built-in function so avoid using it.
h=@(t) a*(t>5)+b*(t<=5)
or with the complete parameters
h=@(t,t0,a,b) a*(t>t0)+b*(t<=t0)
6 Kommentare
Walter Roberson
am 26 Mär. 2022
In the case of string objects I would suggest having a string array being indexed by (2 minus logical value). This would select the first string for true and the second for false
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Performance and Memory 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!