我试图以符号变量的形式从Matlab返回一个答案。我创建了以下代码和函数来说明我收到的错误:
clc
clear all
syms L real;
% L = 1 % The code works when I uncomment this line
k1 = [ L, -L;
-L, 2*L]
k2 = [4*L^2, -L;
0, L]
K = GlobalStiffnessMatrix(k1,k2)
m file GlobalStiffnessMatrix。m如下所示:
function K = GlobalStiffnessMatrix(k12,k23)
K = zeros(2,2);
K(1,1) = k12(1,1);
K(1,2) = k12(1,2);
K(2,1) = K(1,2);
K(2,2) = k12(2,2) + k23(1,1);
end
我收到以下错误:
从sym转换为double时发生以下错误:
使用symengine时出错(第59行)
如果输入表达式包含符号变量,请使用VPA。
我曾尝试在函数本身和模拟代码中使用VPA,但仍收到相同的错误。当然,当我取消注释行设置时
L = 1
该函数工作正常,符合预期。
K
作为符号变量?