2011-01-09 4 views
0

私はこれらの単純なコードを別々のファイルでmatlabに書きました。 このプログラムを実行すると、次のメッセージが表示されます。ode15sコードのエラーメッセージ

???関数としてSCRIPTの関数ode15sを実行しよう:

D:\アプリ\ ode15s.m問題何2

[T,Y] = ode15s(@difdif,[0 40],[1 0 0]); 

で==>関数ode15sで

エラー。

«««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««« 

clc 

[T,Y] = ode15s(@difdif,[0 40],[1 0 0]); 

%plot(T,Y(:,3),'-o') 

plot(T,Y(:,1),'-',T,Y(:,2),'-o',T,Y(:,3),'.') 

««««««««««««««««««««««««««««««««««««««««««««««««««« 

function dy = difdif(t,y) 

dy = zeros(3,1); % a column vector 

dy(1) =-0.04*y(1)+10^4*y(2)*y(3); 

dy(2) = 0.04*y(1)-10^4*y(2)*y(3)-3*10^7*y(2)^2; 

dy(3) = 3*10^7*y(2)^2; 

end 
+1

最初のファイルの名前を他の名前に変更しようとします( 'ode15s.m'は使用しないでください)。 – Amro

答えて

2

Why do I receive the error "Attempt to execute SCRIPT FILENAME as a function"?が該当します。 D:\app\ode15s.mはおそらく、MATLABの検索パス上で最初に作成される独自のスクリプトです。 ode15s.mで構築されたMATLABは、意図した通り呼び出されません。 MATLAB検索パスの順序を変更するか、D:\app\ode15s.mに名前を変更します。

ソリューションの引用:which ode15s -allには、検索パス上のすべてのインスタンスが表示されます。

0

スクリプトには、組み込み関数と同じ名前のode15sという名前を付けました。 matlabはode15s(@difdif,[0 40],[1 0 0])を実行しようとすると、組み込み関数ではなくスクリプトを探します。スクリプトの名前を変更します。

関連する問題