繁体   English   中英

当我不使用运算符时,如何在Octave中修复不一致的参数错误?

[英]How can I fix a nonconformant arguments error in Octave when I am not using an operator?

我对八度音程和编程有点新意。 我正在尝试创建一个适用于多个实体的Force矢量,但是当我尝试初始化矢量变量时,octave在计算Fn1时会返回错误:

menuTest: =: nonconformant arguments (op1 is 1x1, op2 is 2x1)

我知道如果你试图在不同意的两个矩阵上使用运算符,它将返回一个错误,但是,这不是我在这里尝试做的。

我尝试过:将逗号更改为分号并将其完全删除。

我希望终端输出一个矢量数组,但它会产生错误。

function menuTest
    Xs = 0
    rs =0
    G = 6.67*10e-11
    S = 2e30
    dt = .1
    m = 6e20
    e = .0167
    b = a*sqrt(1-(e.^2))
    X(1) = a
    Y(1) = 0
    vX(1) = 10
    vY(1) = 0
    %P2
    a1 = a + 14e6
    X1(1) = a1
    Y1(1) = 0
    r(1) = sqrt(X(1).^2 + Y(1).^2)
    r1(1)  = sqrt(X1(1).^2 + Y1(1).^2)
    %Force on body 1
    F(1) = (S)*(G*m)/((rs(1)-r(1)).^2)
    F21(1) = (S)*(G*m)/((r1(1)-r(1)).^2)
    %Force on body 2
    F12(1) = (S)*(G*m)/((r(1)-r1(1)).^2)
    F1(1) = (S)*(G*m)/(r1(1).^2)`
    %Force vectorization initialization
    Fn1(1) = [F(1),F21(1)]
    unit(1) = [(Xs(1)-X(1)), (X1(1)-X(1))]
    unitFn1(1) = dot(Fn1,unit(1))
    Fn2(1) = [F1(1),F12(1)]
    unit1(1) = [(Xs(1)-X(1)),(X(1)-X1(1))]
    unitFn2(1) = dot(Fn2,unit1(1))
endfunction

我希望Fn1输出一个带有FF21的矢量及它的元素。 相反,我得到了

error: menuTest: =: nonconformant arguments (op1 is 1x1, op2 is 1x2)

我想出了答案。 我收到了错误

error: menuTest: =: nonconformant arguments (op1 is 1x1, op2 is 1x2) error: called from menuTest at line 37 column 10

初始化时:

`Fn(1) = [F(1),F21(1)]`

我删除了(1)并且它有效。 我有

Fn1 = 3.5573e+19 4.0837e+27

在码头。 我猜你不能在矢量化中初始化或使用迭代器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM