Substituting a value to a syms function in a matrix?
    7 ビュー (過去 30 日間)
  
       古いコメントを表示
    
I have  a 4x4 matrix
A=
[E11e,    0,    0,        0]
[   0, E11e,    0,        0]
[   0,    0, E11e,        0]
[   0,    0,    0, 0.5*E11e]
where Elle is a symbolic function....(syms E11e)
And I need to substitute the value of Elle as  4.3287e+08.
How should I  do it?
0 件のコメント
採用された回答
その他の回答 (1 件)
  Walter Roberson
      
      
 2022 年 2 月 20 日
        compare:
syms E11e(t)
A1 = [
    E11e,    0,    0,     0
    0, E11e,    0,        0
    0,    0, E11e,        0
    0,    0,    0, str2sym('0.5')*E11e ]
syms E11e
A2 = [
    E11e,    0,    0,     0
    0, E11e,    0,        0
    0,    0, E11e,        0
    0,    0,    0, str2sym('0.5')*E11e ]
Notice that the output for the symbolic function case always includes the names of the symbolic function parameters. As you do not show that in your symbol is a symbolic variable rather than a symbolic function.
The replacement method is the same either way:
B1 = subs(A1, E11e, str2sym('4.3287e+08'))
B2 = subs(A2, E11e, str2sym('4.3287e+08'))
It would be more common to,
subs(A2, E11e, 4.3287e+08)
This has a slightly different meaning than using str2sym() would have: when you use the numeric constant then by default the constant is converted to a rational value (or rational combined with a square root or π); when you use str2sym() like I used there, then a software floating-point number is used.
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!







