如何在MATLAB中手动将我以符号方式声明的变量插入到零矩阵中?

如何在MATLAB中手动将我以符号方式声明的变量插入到零矩阵中?,matlab,symbolic-math,Matlab,Symbolic Math,我一直在尝试将符号变量插入零矩阵 syms k1 k2 k3 k4 global_k1 = zeros(4,4); global_k2 = zeros(4,4); global_k3 = zeros(4,4); global_k4 = zeros(4,4); global_k1(1,1) = k1; global_k1(1,2) = -k1; global_k1(2,1) = -k1; global_k1(2,2) = k1; global_k2(2,2) = k2; global_k2(

我一直在尝试将符号变量插入零矩阵

syms k1 k2 k3 k4
global_k1 = zeros(4,4);
global_k2 = zeros(4,4);
global_k3 = zeros(4,4);
global_k4 = zeros(4,4);
global_k1(1,1) =  k1;
global_k1(1,2) = -k1;
global_k1(2,1) = -k1;
global_k1(2,2) =  k1;
global_k2(2,2) =  k2;
global_k2(2,3) = -k2;
global_k2(3,2) = -k2;
global_k2(3,3) =  k2;
global_k3(2,2) =  k3;
global_k3(2,3) = -k3;
global_k3(3,2) = -k3;
global_k3(3,3) =  k3;
global_k4(2,2) =  k4;
global_k4(2,4) = -k4;
global_k4(4,2) = -k4;
global_k4(4,4) =  k4;
k_stiff = global_k1+global_k2+global_k3+global_k4;
disp('The stiffness matrix is: ');
disp(k_stiff);
当我运行程序时,它显示以下错误:

The following error occurred converting from sym to double:
Unable to convert expression into double array.

Error in HW1_1 (line 9)
global_k1(1,1) =  k1;

如何将符号变量添加到零矩阵中?

如果以后要替换其元素,请将它们初始化为包含零的符号矩阵。i、 e

global_k1 = sym(zeros(4,4));

最好是创建单个3D矩阵,而不是动态的
global_k1
global_k2
global_k3
global_k4
矩阵

global_k = sym(zeros(4,4,4));

现在
global_k(:,:,1)
将成为您的
global_k1
,依此类推。

如果以后要替换其元素,请将它们初始化为包含零的符号矩阵。i、 e

global_k1 = sym(zeros(4,4));

最好是创建单个3D矩阵,而不是动态的
global_k1
global_k2
global_k3
global_k4
矩阵

global_k = sym(zeros(4,4,4));
现在
global_k(:,:,1)
将成为您的
global_k1
等等