【问题标题】:strange "Index exceeds matrix dimensions." matlab error奇怪的“索引超过矩阵尺寸。” matlab错误
【发布时间】:2017-01-12 08:27:05
【问题描述】:

我在 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 行。

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

【问题讨论】:

  • 尝试使用debugger,并在第3行设置断点。
  • 你用什么参数调用tries

标签: matlab


【解决方案1】:

第 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多