Behavior of subs() function in Symbolic Math Toolbox
4 views (last 30 days)
Show older comments
Dear MATLAB Central members,
I would like to ask a behavior of subs() in Symbolic Math Toolbox (R2016b, Windows 64 bit, OS: Windows 7).
Here is an example.
syms a b aM bM
aM=sym([2 3;4 5]);
bM=sym([6 7;8 9]);
s_temp=a*b;
>> s_temp=subs(s_temp,a,'aM')
s_temp =
aM*b
>> s_temp=subs(s_temp,b,'bM')
s_temp =
aM*bM
>> subs(s_temp)
ans =
[ 12, 21]
[ 32, 45]
which is same as
>> aM.*bM
ans =
[ 12, 21]
[ 32, 45]
but what I like to get the result from subs(s_temp) is a result of
>> aM*bM
ans =
[ 36, 41]
[ 64, 73]
Can I get this result using subs function, or should I do something else?
Thank you in advance for your help.
Regards,
Kosuke
0 Comments
Accepted Answer
Nicolas Schmit
on 19 Sep 2017
You have to define a and b as 2x2 symbolic matrices. Also, do not put the variables aM and bM into quotes when using subs()
a = sym('a', [2 2]);
b = sym('b', [2 2]);
aM=sym([2 3;4 5]);
bM=sym([6 7;8 9]);
s_temp=a*b;
s_temp=subs(s_temp,a,aM)
s_temp=subs(s_temp,b,bM)
subs(s_temp)
More Answers (1)
Walter Roberson
on 19 Sep 2017
No. The symbolic toolbox treats all unassigned variables as scalar and that is not possible to change (it is the behavior of the symbolic engine itself)
See Also
Categories
Find more on 式の操作と単純化 in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!