How to write as symbolic piecewise function with conditions on a symbolic vector
1 view (last 30 days)
Show older comments
I have a symbolic vector, and I want to define a function that is an parabola if the vector is inside a hyper cube of length 2 centered at the origin, and otherwise it's infinity. This is what I've written
syms Xi [1 n]
ff = piecewise(all(abs(Xi)<=1),sum(Xi.^2),Inf);
This function however produces the error
Error using symengine
Unable to prove 'abs(Xi1) <= 1' literally. Use 'isAlways' to test the statement mathematically.
Error in sym>logicalNaNIsTrue (line 2054)
X = mupadmex('symobj::logicalNaNIsTrue',A.s,9);
Error in sym/all (line 623)
X = all(logicalNaNIsTrue(A));
0 Comments
Accepted Answer
Walter Roberson
on 24 Feb 2023
n = 4
syms Xi [1 n]
condition = fold(@and, abs(Xi)<=1)
ff = piecewise(condition, sum(Xi.^2), Inf)
0 Comments
See Also
Categories
Find more on Assumptions in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!