私は自分自身の関数を書く必要があります。これは、形式がf(x,y)=Integrate(g(x,y,z),z from 0 to inf)
です。intergralの関数であるmatlab関数
function y=f(x,y)
[email protected](z)exp(-z.^2)./(z.^x).*(z.^2+y.^2).^(x/2);% as a function of x,y and z
y=quadgk(g,0,inf)
と私はf(x0,y0)
のような単一の値のためにそれを呼び出す場合、それは動作しますが、私はf([1:10],y0)
のようなものを計算しようとすると、エラーメッセージがに何か問題があることは言う:私は使用したコードはでした時間と次元。原則としてforループを使用できますが、コードが遅くなり、永遠にかかるようになります。私はあなたから得ることができる何かがありますか?または参照?
私はforループを避けようとしています。なぜなら、matlabではforループを使うよりもはるかに高速です。私はこの機能を利用できるトリックがあるのだろうかと思います。事前に任意の助け
おかげで、
リン
あなたの場合、私はforループを使うべきだと思います。 'x = 1:10'をお持ちの場合は、通常の関数の時間の10倍以上かかることはないと思います。 – Oli
もし私が10回forループをしてもそれは問題ではありませんが、この関数を別の関数に渡して最適化を行う必要があり、このf関数がベクトル入力を受け入れて生成する必要がありますベクトル出力... – user1092696