Behavior of subs() function in Symbolic Math Toolbox
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Nicolas Schmit
2017-9-19
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)
更多回答(1 个)
Walter Roberson
2017-9-19
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)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 式の操作と単純化 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!