質問: @(t,y) double(m(t,y,i,l,om,ze,f)); sol=ode45(@(t,y) myfun(t,y),[0 50],[0 10])%0~50秒の間の現象で、θは10°以内かつできるだけ大きくしたい。 sol=double(sol) %ここを追加しました。 % グラフ化 plot(t,sol) xlabel('t') ylabel('振れ角θ') title('時間,s') このコードを走らせて、下記のようなエラーが発生しました。 エラー: double struct から double に変換できません。 エラー: thrust_stand_ode (line 75) sol=double(sol) 方程式内の文字で数値を定義できていないものがあるのかと思いましたが、 iθ''+2ζωnθ'+ωn^2θ=ftl/i という解きたい方程式の中で、 一通り数値は定義できているのでdouble化は問題なくできるはずと考えております。 (ftは、f(t)>0の時のf(t)の値です。) 現状、struct型をdoubleに変換する方法について詳しい解説は見つかっていないこともあり進展がありません。
回答: お陰様でプロットに成功しました。 ありがとうございました!