Как я могу разделить каждую строку вектора с его следующим значением строки в Matlab - PullRequest
2 голосов
/ 05 июля 2011

Предположим, у меня есть вектор a=[1;2;2] Я хочу создать вектор b=[1/2;1;2], делящий каждое значение строки ith на значение ith+1, последнее значение нельзя разделить ни на что, поэтому я давай как есть. Я сделал простой код, но получаю следующее сообщение об ошибке: «Индекс превышает размеры матрицы», поэтому мне нужна ваша помощь. Пример кода

a=rand(3,1);  
for i=1:length(a)
   b(i)=a(i)/a(i+1)
end

Большое спасибо за вашу помощь

1 Ответ

4 голосов
/ 05 июля 2011

Вы можете попробовать:

b=a./[a(2:end);1];

Не красиво, но это работает.

Сообщение об ошибке «Индекс превышает размеры матрицы» появляется при попытке сослаться на (i + 1), когдая = длина (а), так как этот элемент не существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...