奇怪的"Index exceeds matrix dimensions." matlab 错误



我在Matlab上写了这个简单的函数:

function [A] = tries (a, b, c, d)
    global S CdM AdA
    D = @(Z, Vx, Vy, Vz) 0.5*S*(Vx.^2 + Vy.^2 + Vz.^2)*CdM(sqrt(Vx.^2 + Vy.^2 + Vz.^2))*AdA(Z);
    A = D(a, b, c, d);
end

但我不断收到此错误:"索引超出矩阵维度"它说错误在第 3 行。

当我将相同的文本放在主函数中(而不是单独的函数)中时,它可以完美运行。有什么想法可能是什么问题吗?

第 3 行中唯一带有索引的项目是

AdA(Z)

读取函数应等于 AdA(a) 。所以Z是没有用的。

D2 = @(Vx, Vy, Vz) 0.5*S*(Vx.^2 + Vy.^2 + Vz.^2)*CdM(sqrt(Vx.^2 + Vy.^2 + Vz.^2));
A = D2(b, c, d)*AdA(a);

但是,忽略 AdA 是什么以及 Z(等于 a)的来源,尝试强制函数显示维度,以查看调用函数时它们是否应匹配。

disp(size(AdA));
disp(a);

最新更新