如何在MATLAB函数中输出两个不同大小的矩阵?

问题描述 投票:0回答:1

我已经在SIMULINK中创建了Matlab函数,我想在其中输出两个矩阵。当我单独但不一起执行它们时,它会起作用。这是我函数中的简单代码:

function [F,J] = gradient_descent(Accelerometer, q)

% Steps to obtain the Matrix F
F = zeros(1,3);
F(1,1) = 2 * (q(2,1) * q(4,1) - q(1,1)* q(3,1)) - Accelerometer(1,1);
F(1,2) = 2 * (q(1,1) * q(2,1) + q(3,1)* q(4,1)) - Accelerometer(2,1);
F(1,3) = 2 * (0.5 - q(2,1)^2 - q(3,1)^2) - Accelerometer(3,1);

% Steps to obtain the Matrix J
J = zeros(4,3);

J(1,1) = -2*q(3,1);
J(2,1) = 2*q(4,1);
J(3,1) = -2*q(1,1);
J(4,1) = 2*q(2,1);

J(1,2) = 2*q(2,1);
J(2,2) = 2*q(1,1);
J(3,2) = 2*q(4,1);
J(4,2) = 2*q(3,1);

J(1,3) = 0;
J(2,3) = -4*q(2,1);
J(3,3) = -4*q(3,1);
J(4,3) = 0;

运行此程序时,出现以下错误:enter image description here

matlab simulink
1个回答
0
投票

Matlab中已经有一条命令可以满足您的需求,如果问题是Simulink,则可以使用Matlab功能块https://www.mathworks.com/matlabcentral/fileexchange/71867-optimizacion-por-descenso-gradiente

© www.soinside.com 2019 - 2024. All rights reserved.