1. ホーム
  2. matlab

[解決済み] MATLABの初心者です。エラー 最初の入力引数は関数ハンドルでなければなりません。現在の関数を積分しようとしているとき

2022-02-27 20:15:30

質問

というわけで、今のところこんな感じです。

t=60;

q=integral(e(t)*i(t), t, 0, 2*pi);

function v=e(t)

v=160*sin(t);

end

function c=i(t)

c=2*sin(t-(pi/6));

end

が、以下のようなエラーが返ってきてしまい、どうすればいいのか全くわかりません。同じエラーを参照している他の投稿も見ましたが、修正することができませんでした。

Error using integral (line 82)
First input argument must be a function handle.

Error (line 10)
q=integral(e(t)*i(t), t, 0, 2*pi);

ご協力をお願いします。

解決方法は?

このようなものがあるはずです。

e_times_i = @(t) e(t) .* i(t)
q=integral(e_times_i, 0, 2*pi);

確かに、最初の引数の integral matlabの関数ハンドルです。あなたが与えた 関数ハンドルではありません。