0

我正在尝试编写一个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

这是为什么?我应该在代码中修复什么?

谢谢。

4

1 回答 1

1

不确定您的代码在做什么,但是如何使用它:

function s = support(x)
   y = trapmf(x,[1 3 4 5]);
   s = x(y~=0)
于 2013-02-04T15:45:26.273 回答