Я пытаюсь разбивать массив размером 1x117031 (массив X) на массив размером Nx140 (массив Y), поэтому я могу построить новый массив и узнать, как графики были изменены во время циклического тесты (N около 1000).Разбить массив
Вот мой код:
mydata=xlsread('average_4_5');
for i=100:size(mydata)
X(i-99)=mydata(i,10);
end
for j=1:1000
Y(j, 1:140)=X(1,((140*j)-140):140*j);
end
Но я получаю сообщение об ошибке:
Subscript indices must either be real positive integers or logicals.
Кажется, проблема исходит от X(1,((140*j)-140):140*j)
и я не имею ни малейшего представления, почему это Безразлично» t распознает j
как целочисленное значение.
Любые мысли о том, как я могу сделать это преобразование и построить строки Y
, чтобы дать мне график с 1000 записей?
Я не уверен, что следил за тем, что вы хотели сделать, но похоже, что вы, вероятно, можете сбросить все свои петли и просто использовать ['reshape'] (http://www.mathworks.com/help/matlab /ref/reshape.html). – Dan
@ Dan Спасибо за ваш комментарий. Точно, я заменил мою теперь функцией изменения, и она работает. Спасибо, что напомнили мне об этом. – Kamran
Лучше [не использовать 'i' и' j' как имена переменных в Matlab] (http://stackoverflow.com/q/14790740/1714410). – Shai