请考虑以下代码:
A = sym('a', [1, 2]);
b = sym('b');
ans = A.^2 + b;
A = [1, 2];
b = 4;
subs(ans)
这会产生输出
ans = [a1 ^ 2 + 4,a2 ^ 2 + 4]
而我本来希望它产生
ans = [5,8]
矢量转换为数值所需的是什么?
答案 0 :(得分:3)
这是一个更简单的解决方案:
syms A b; %Initializing symbolic variables
expr = A^2 + b; %Your expression (element-wise square is taken by default for sym class)
A = [1 2]; b=4; %Assigning the values
subs(expr) %Substituting symbolic variables with corresponding assigned values
根据需要输出:
ans =
[ 5, 8]
<强>注释:强>
A
指定为[1, 2]
,但您的表达式中并未包含A
。它有a1
和a2
(显然b
)。ans
用于最近答案。 (这就是为什么我用ans
)expr
的原因
醇>