0
考慮下面的代碼的符號向量工作:MATLAB潛艇方法不能在索引變量
A = sym('a', [1, 2]);
b = sym('b');
ans = A.^2 + b;
A = [1, 2];
b = 4;
subs(ans)
這產生輸出
ANS = [A1^2 + 4,A 2^2 + 4]
而我本來想它產生
ans = [5,8]
矢量要轉換爲數值還需要什麼?
考慮下面的代碼的符號向量工作:MATLAB潛艇方法不能在索引變量
A = sym('a', [1, 2]);
b = sym('b');
ans = A.^2 + b;
A = [1, 2];
b = 4;
subs(ans)
這產生輸出
ANS = [A1^2 + 4,A 2^2 + 4]
而我本來想它產生
ans = [5,8]
矢量要轉換爲數值還需要什麼?
這裏的一個簡單的解決方案:
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
用於最新回答表達式未分配給其他任何其他。 (這就是爲什麼我用expr
代替ans
)