我在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);