ファジー セットmatlab
のサポートを検出する関数を作成しようとしています。
まず、support(x)
それが何を意味するかを知るために、次のようになります: メンバーシップ度 > 0 の要素を含むクリスプ セット
メンバーシップ関数の例はこちらです。
たとえば、次のコマンドを matlab で実行するとします (trapmf がファジー ロジック ツールボックスの一部であることに注意してください)。
>> x=1:5
x =
1 2 3 4 5
>> y=trapmf(x,[1 3 4 5]);
>> y
y =
0 0.5000 1.0000 1.0000 0
したがって、これらはゼロ以外のメンバーシップ値を持つ要素であるため、次のsupport(x)
ようになります。2,3,4
このアイデアを得たので、次のように matlab 関数 (.m ファイル) として実行しようとしました。
function support(x)
y = trapmf(x,[1 3 4 5]);
for i=1:length(y)
if(y(i) == 0)
x(i)
end
end
しかし、実行すると、次のようになります。
>> support(x)
ans =
1
ans =
5
何故ですか?コードの何を修正すればよいですか?
ありがとう。