我正在尝试编写一个matlab
函数来查找模糊集的支持。
首先,要了解support(x)
的含义,它是:一个包含会员等级的元素的清晰集合> 0
会员功能的一个例子是here。
例如,如果我在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
为什么?我应该在代码中修复什么?
感谢。
答案 0 :(得分:1)
不确定你的代码在做什么,但是如何使用它:
function s = support(x)
y = trapmf(x,[1 3 4 5]);
s = x(y~=0)