piecewise symbolic function within a symbolic matrix
Afficher commentaires plus anciens
Hallo, I would like to construct a matrix P whose elements depend on x (a vector that varies with time). Some elements of P are piecewise functions of x. The code is just to test whether P can be updated. Any help will be much appreciated.
sym x
P = sym(zeros(3,3)) %create empty symbolic matrix
P(1,1) = sym('1/(1+exp(-4.3*x(1)))')
P(2,1) = sym('0.2*x(2)')
P(3,1) = sym('0.4*sin(0.0192+x(3))')
P(1,2) = sym('1/(1+exp(11.8*x(2)))')
P(2,2) = .3435
P(3,2) = sym('.02 + (x(3)>=.04)*(.66*x(3))') %piecewise
x = [.5, .5, .1]
eval(P)
But I get an error due to the piecewise function (without it, P easily updates):
Error using sym/eval (line 11)
Error: Unbalanced or unexpected parenthesis or bracket.
Outside of the sym function, .02 + (x(3)>=.04)*(.66*x(3)) works all right.
I have also tried:
sym('piecewise([x(3)<.04,.02],[x(3)>=.04,0.02+0.66*x(3)])')
but still no go...I wonder what I am doing wrong? Thanks for your time
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Assumptions dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!