how to combine symbolics and if statement?
23 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Karthik Nimishakavi
am 15 Okt. 2016
Bearbeitet: Karan Gill
am 17 Okt. 2017
Hello, My function is like this
y=x+2 for 0<=x<=10
y = x^2 for 10<x<=500 and x belongs to 0,500.
so I tried like this
syms x
if x>=0 && x<=10
y=x+2
else y=x^2
end
but i am getting an error saying
"Conversion to logical from sym is not possible"
"Operands to the || and && operators must be convertible to logical scalar values".
Please help me how to overcome this.
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 15 Okt. 2016
You cannot use if together with symbolic expressions.
You should be considering using numeric expressions together with logical indexing. See though http://www.mathworks.com/matlabcentral/answers/301165-ode-suite-for-solving-switched-systems#comment_397941 for a discussion on hidden problems with one way of coding that.
You could also code the obscure
evalin(symengine, 'piecewise([0 <= x and x <= 10, x+2], [10 < x and x <= 500, x^2])')
but you will find that it probably will not be of any use to you.
Weitere Antworten (1)
Karan Gill
am 20 Okt. 2016
Bearbeitet: Karan Gill
am 17 Okt. 2017
In this case:
syms y(x)
y(x) = piecewise(0<=x<=10, x+2, 10<x<=500, x^2);
Now try
y(1)
ans =
3
>> y(12)
ans =
144
1 Kommentar
Siehe auch
Kategorien
Mehr zu Conversion Between Symbolic and Numeric 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!