Как я могу исправить ошибку несоответствующих аргументов в Octave, когда я не использую оператор? - PullRequest
0 голосов
/ 27 апреля 2019

Я немного новичок в октаве и программировании в целом.Я пытаюсь создать вектор Сил, который применяется к нескольким телам, но когда я пытаюсь инициализировать векторную переменную, октава возвращает ошибку при вычислении 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)

1 Ответ

0 голосов
/ 30 апреля 2019

Я разобрался с ответом.Я получил ошибку

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

на терминале.Я предполагаю, что вы не можете инициализировать или использовать итератор в векторизации.

...