関数ハンドルのハンドルの渡し方について
Show older comments
下のように、ωについての積分をするコードを書きました。
以下がコードです。
A=1;m=1;s=1;wA=1;const=10^-10; %定数を決定
%2の計算 まず、eで積分
J=ffun(@(e)A.*exp(-(e-m).^2./(2*pi.*s.^2))./(w-e),-inf,w-const,w+const,inf)-@(w)1i*pi*A.*exp(-(w-m).^2./(2*pi.*s.^2));
%1の計算 次に、wで積分
K=@(t)gfun(@(w)exp(-1i*w.*t)./(w-wA-J),-inf,inf);
function f=ffun(fun,a,b,c,d)
f=integral(fun,a,b)+integral(fun,c,d);
end
function g=gfun(fun,a,b)
g=integral(fun,a,b);
end
こなままだと、まずωが変数として認識されません。また、ハンドルの渡し方についても違うと思うのですがわかる方がいましたらご教授お願いします。
2 Comments
Atsushi Ueno
on 21 Nov 2021
2行目の”@(w)”を先頭に移動すれば、ωに関するエラー無く動く事は間違いないです。
ただ、続くKの演算におけるgfunの中身(積分する式)が「ωを含む数式-(ωを引数とする関数ハンドル)」と、数式の内部で関数ハンドルを演算しており、この形が成立するのかどうかが疑問です
Atsushi Ueno
on 22 Nov 2021
すなわち「無名関数の入れ子」の考え方が必要ですね
Accepted Answer
More Answers (0)
Categories
Find more on MATLAB in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
