4

私はこの表現を統合しようとしています:

正規分布関数:

ただし、機能の設定に問題があるようです。このMATLAB の説明で概説されているように、次のような 'NDfx.m' という名前の別の関数を定義しました。

    function [ y ] = NDfx(x)
    
    y = (1/sqrt(2*pi))*exp(-.5*x^2); % Error occurs here
    
    end

ただし、メイン関数内で呼び出すと、上記のコメント行でエラーが発生します。私の主な機能は次のようになります。

function[P] = NormalDistro(u,o2,x)

delta = x-u;
dev = abs((delta)/o2);           % Normalizes the parameters entered into function
P_inner = quad(@NDfx,-dev,dev);  % Integrates function NDfx from -dev to dev (error here)
P_outer = 1 - P_inner;           % Calculation of outer bounds of the integral

if delta > 0
    P = P_inner + (P_outer/2);
    
elseif delta < 0
    P = P_outer/2;

elseif dev == 0
    P = .5;
    
end
end

私が得る特定のエラーは次のとおりです。

==> mpower のエラー

入力はスカラーおよび正方行列でなければなりません

4

2 に答える 2

5

統合のためにすべてを正しくセットアップしました。エラーは関数自体の定義にあります。統合する関数の変数を使用する場合、「.」^(ピリオド) は、 andのような演算子*が変数に適用される場合に先行する必要があります。

function [y] = NDfx(x)

    y = (1/sqrt(2*pi))*exp(-.5*(x.^2));

end
于 2011-02-24T04:44:05.740 に答える