Почему произошла ошибка в цикле for? - PullRequest
0 голосов
/ 10 января 2019

Произошла ошибка вне границы.

Это октавский язык.

for ii=1:1:10
    m(ii)=ii*8
    q=m(ii)
    if (ii>=2)
        q(ii).xdot=(q(ii).x-q(ii-1).x)/Ts;
    end
end

Но ошибка говорит

 q(2): out of bound 1

Как я могу это исправить?

1 Ответ

0 голосов
/ 11 января 2019

Для этого типа назначения вам не нужен цикл, и в любом случае вам нужно определить Ts. Для расчета дифференциального увеличения вы можете использовать diff

x=(1:1:10)*8
x =

    8   16   24   32   40   48   56   64   72   80

octave:5> Ts=2
Ts =  2
octave:6> xdot=diff(x)/Ts
xdot =

   4   4   4   4   4   4   4   4   4

octave:7> size(x)
ans =

    1   10

octave:8> size(xdot)
ans =

   1   9
...