在matlab中求矩阵的雅可比矩阵

在matlab中求矩阵的雅可比矩阵,matlab,matrix,Matlab,Matrix,我在matlab中有以下脚本,目标是计算$f_1,f_2,f_3,f_4$的雅可比矩阵,它应该给我一个4乘4的矩阵,但我得到的是一个7乘4的矩阵。我不确定这段代码有什么问题,它应该可以工作 syms m M L J p_x p_theta theta X g K_m K_g r V_in R_m; h= (m+M)*(m*L^2/4+J) - (m*L/2 * cos(theta))^2; f_1 = [1/h * [ (m*L^2/4+J)*p_x + m*L/2 cos(theta)* p_

我在matlab中有以下脚本,目标是计算
$f_1,f_2,f_3,f_4$
的雅可比矩阵,它应该给我一个4乘4的矩阵,但我得到的是一个7乘4的矩阵。我不确定这段代码有什么问题,它应该可以工作

syms m M L J p_x p_theta theta X g K_m K_g r V_in R_m;
h= (m+M)*(m*L^2/4+J) - (m*L/2 * cos(theta))^2;
f_1 = [1/h * [ (m*L^2/4+J)*p_x + m*L/2 cos(theta)* p_theta]];
f_2 = [1/h * [ (m*L/2 * cos(theta))*p_x + (m+M)*p_theta]];
F = K_m *K_g/r *[ (V_in -K_m*K_g * f_1/r)/R_m];
f_3 = F;
f_4 = m*L/2 *sin (theta)*(f_1*f_2+g);
J_1=jacobian([f_1,f_2,f_3,f_4],[X;theta;p_x;p_theta]);
subs(J_1,[X,theta,p_x,p_theta],[0,0,0,0])

我能看到的唯一一件事是,在定义
f_1
时遗漏了一个操作符。你是说它是1x2阵列吗?如果没有,我建议如下(我在
L/2
cos(θ)
之间插入了
*
):


这将为最终答案提供一个4x4矩阵,如您所愿。

我唯一能看到的是,您在定义
f_1
时遗漏了一个运算符。你是说它是1x2阵列吗?如果没有,我建议如下(我在
L/2
cos(θ)
之间插入了
*
):

这将为最终答案提供一个4x4矩阵,如您所愿

f_1 = [1/h * [ (m*L^2/4+J)*p_x + m*L/2 * cos(theta)* p_theta]];