2017-05-31 20 views
0

私は、次のように定義された関数F統合しようとしています:インテグラ区分的関数MATLAB

function F   
    x = -3:0.1:3; 
    F = zeros(1, length(x)); 
    for i = 1:length(x) 
     if (1.4<= x(i)) && (x(i) <= 1.6) 
      F(i) = x(i).^2; 
     else 
      F(i) = 2; 
     end 
    end 
end 

しかしintegral機能があまりにも多くの引数があることを言って私にエラーが発生しますが。私はその機能がポイントとして定義されている問題だと思いますか?

+4

私たち全員の揺れに対して、コードを正しくインデントしてください。また、そのエラーコードを表示します。あなたは本質的に積分を呼び出す方法を理解していません。関数は 'f(x)'の形式のもので、あなたのFには入力がありません。 'x'を定義すべきではありません。そうでなければ' F'は配列であり、関数ではありません。 –

+0

問題は 'integral'関数と呼ばれる行にあります。私たちの*コード行も表示されます! – Wolfie

+0

整数(F、0,1) のようなint関数を呼び出すと、エラーが発生する F 出力引数が多すぎます。 あなたは私の関数Fが配列だと思っていたとしたら、どうすれば関数としてFを定義できますか? – Imran

答えて

0

あなたの関数の問題点は、integralは、関数Fに指定した引数を渡す方法がないことです。この関数は、作成したベクトルから特定の要素を引き出すことができるだけであることはわかりません。入力(またはx値)に対してFの出力が返されるように関数を書き直すと、integralは必要に応じて2つの値を渡して動作します。