Can a Comma Separated List be Generated Directly from a sym Array?
4 views (last 30 days)
Show older comments
Can a comma separated list be generated directly from a sym array for use as input to a sym function?
>> xvar=sym('x',[1 4])
xvar =
[ x1, x2, x3, x4]
>> yvar=sym('y',[1 4])
yvar =
[ y1, y2, y3, y4]
>> f(xvar)=sum(xvar)
f(x1, x2, x3, x4) =
x1 + x2 + x3 + x4
>> f(yvar)
Error using symfun/subsref (line 177)
Symbolic function expected 4 input arguments but received 1.
>> temp=num2cell(yvar);
>> f(temp{:})
ans =
y1 + y2 + y3 + y4
Baically, is there a way evaluate f at the elements of yvar without having to create the temp variable, as needed for generailized code where the lengths of xvar and yvar are not known ahead of time?
0 Comments
Accepted Answer
Walter Roberson
on 1 Feb 2021
Edited: Walter Roberson
on 1 Feb 2021
Can a comma separated list be generated directly from a sym array for use as input to a sym function?
NO. But you can do it without an explicit temporary variable.
xvar=sym('x',[1 4]);
yvar=sym('y',[1 4]);
f(xvar) = sum(xvar);
f(struct('v', num2cell(yvar)).v)
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!