Im извлекает зависящие от времени данные из файла .dat и использует функцию сплайна, сопоставляя значения с существующим вектором времени при использовании. По какой-то причине функция длины не считывает длину вектора.В Matlab ошибка с использованием длины (x) дает ошибку индексации.
я могу воссоздать ошибку с этой аннотации:
x = linspace(1,98,76)';
y = 20.*x-5.*x.^2;
t = linspace(0,100,1000)';
yy = spline(x,y,t);
length(yy)
возвращает
??? Индексы индексов должны быть либо натуральными целыми числами, либо логическими.
В моей рабочей области показано, что yy 1000x1 double, а max (размер (yy)) отлично работает. Любая идея о том, что создает эту ошибку?
Я не получаю ошибку при запуске этого кода на R2012b в Linux Mint. Попробуйте добавить 'clear' в начало вашего рекламного ролика, и если он начнет работать правильно, вы узнаете, что идея преторианца верна. –
У меня также нет ошибки в R2010b на ubuntu 10.04. – jespestana
Также см. [Этот вопрос] (http://stackoverflow.com/questions/20054047/subscript-indices-must-either-be-real-positive-integers-or-logicals-generic-sol) для [общего решения эта проблема] (http://stackoverflow.com/a/20054048/983722). –