“内部矩阵尺寸必须一致” - 但它不应该是一个矩阵

时间:2018-05-24 14:28:22

标签: matlab matrix dimensions

以下是我定义的函数的片段:

function [V1, V2] = lambert(R1, R2, t, string)

r1 = norm(R1);
r2 = norm(R2);

z = -100;
while F(z,t) < 0
    z = z + 0.1;
end

tol = 1.e-8;
nmax = 5000;
ratio = 1;
n = 0;

while (abs(ratio) > tol) & (n <= nmax)
    n = n + 1;
    ratio = F(z,t)/dFdz(z);
    z = z - ratio;
end

f = 1 - y(z)/r1;
g = A*sqrt(y(z)/mu);
gdot = 1 - y(z)/r2;

V1 = (R2-f*R1)/g;
V2 = (gdot*R1-R1)/g;

function dum = y(z)
    dum = r1 + r2 + A*(z*S(z) - 1)/sqrt(C(z));
end

当我使用一些向量R1R2运行此代码时,我得到:

  

使用*时出错   内部矩阵尺寸必须一致。

这发生在以下几行:

V1 = (R2-f*R1)/g;
V2 = (gdot*R1-R1)/g;

我认为这是因为fgdot以及g是矩阵与R1R2不兼容的矩阵。但是,正如我已经定义的那样,它们应该只是标量。我不明白代码中的内容会导致它们成为矩阵。

我尝试使用.*代替*等,但没有成功。

0 个答案:

没有答案