[英]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
输出一个带有F
和F21
的矢量及它的元素。 相反,我得到了
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.