Стараюсь этот код для реализации hyperchaotic Лоренц в MATLAB:Реализация hyperchaotic Лоренц в MATLAB
function Y=b(a,b,c,d,e,k)
[T,Y]=ode45(@rigid,[0 e],[a b c d]);
function out=rigid(t,y)
out=zeros(4,1);
out(1)=10*(y(2)-y(1));
out(2)=28*y(1)+y(2)-y(1)*y(3)-y(4);
out(3)=y(1)*y(2)-(8/3)*y(3);
out(4)=0.1*y(2)*y(3)+k;
end;
end;
Но когда я вызвать функцию б со значением, у меня есть эта ошибка: ??? Индекс превышает размерность матрицы. может ли кто-нибудь помочь мне с этим кодом?
Попробуйте удалить точки с запятой после операторов 'end', в частности, последней. Кроме того, FYI, одна из причин, по которой вы, вероятно, попали - проголосовали, заключалась в том, что вы предоставили функцию без возможности ее запуска, т. Е. Вы не сказали, что такое входы. – horchler
Знаете ли вы, что у вас есть переменная с именем 'b' в вашей функции с именем' b'? –
@RobertP .: Это, похоже, не вызывает проблемы (R2012b, OS X 10.8.4), но это, конечно, не очень хорошая идея. Это также может привести к тому, что код будет более медленным, хотя Matlab должен будет определить, какой вызов вызывается 'b'. – horchler