使用matlab完成:某茶叶店现有五个等级的茶叶样品,分别记为A1,A2,A3,A4和A5,判断茶叶等级的因素有六个,构成论域U, U={x1(条索),x2(色泽),x3(净度),x4(汤色),x5(香气),x6(滋味)} 设五个等级的样品对6项指标的数值分别为: A1=(0.5,0.4,0.3,0.6,0.5,0.4) A2=(0.3,0.2,0.2,0.1,0.2,0.2) A3=(0.2,0.2,0.2,0.1,0.1,0.2) A4=(0,0.1,0.2,0.1,0.1,0.1) A5=(0,0.1,0.1,0.1,0.1,0.1) 设有一待识别的茶叶样品B,其各项指标的数值为(0.4,0.2,0.1,0.4,0.5,0.6),请分别利用两种不同的模糊模式识别准则判断样品B的等级。
时间: 2023-09-11 08:07:46 浏览: 108
这道题需要用到模糊模式识别的知识,我来为您介绍一下实现方法。
首先,我们需要将样本数据和待识别的茶叶样品进行归一化处理,将各项指标的范围统一到[0,1]区间内。
代码实现如下:
```matlab
% 样本数据
A1 = [0.5, 0.4, 0.3, 0.6, 0.5, 0.4];
A2 = [0.3, 0.2, 0.2, 0.1, 0.2, 0.2];
A3 = [0.2, 0.2, 0.2, 0.1, 0.1, 0.2];
A4 = [0, 0.1, 0.2, 0.1, 0.1, 0.1];
A5 = [0, 0.1, 0.1, 0.1, 0.1, 0.1];
% 待识别的茶叶样品B
B = [0.4, 0.2, 0.1, 0.4, 0.5, 0.6];
% 归一化处理
A1 = A1./sum(A1);
A2 = A2./sum(A2);
A3 = A3./sum(A3);
A4 = A4./sum(A4);
A5 = A5./sum(A5);
B = B./sum(B);
```
接下来,我们可以采用两种不同的模糊模式识别准则来判断样品B的等级。
第一种准则是最小距离准则,即将样品B与每个已知等级的样品求距离,将B划分到距离最小的等级。
代码实现如下:
```matlab
% 计算样品B与每个已知等级的距离
d1 = sqrt(sum((B - A1).^2));
d2 = sqrt(sum((B - A2).^2));
d3 = sqrt(sum((B - A3).^2));
d4 = sqrt(sum((B - A4).^2));
d5 = sqrt(sum((B - A5).^2));
% 判断B的等级
if min([d1, d2, d3, d4, d5]) == d1
disp('B的等级为A1');
elseif min([d1, d2, d3, d4, d5]) == d2
disp('B的等级为A2');
elseif min([d1, d2, d3, d4, d5]) == d3
disp('B的等级为A3');
elseif min([d1, d2, d3, d4, d5]) == d4
disp('B的等级为A4');
else
disp('B的等级为A5');
end
```
第二种准则是最大隶属度准则,即将样品B与每个已知等级的样品求隶属度,将B划分到隶属度最大的等级。
代码实现如下:
```matlab
% 计算样品B与每个已知等级的隶属度
u1 = min([B./A1]);
u2 = min([B./A2]);
u3 = min([B./A3]);
u4 = min([B./A4]);
u5 = min([B./A5]);
% 判断B的等级
if max([u1, u2, u3, u4, u5]) == u1
disp('B的等级为A1');
elseif max([u1, u2, u3, u4, u5]) == u2
disp('B的等级为A2');
elseif max([u1, u2, u3, u4, u5]) == u3
disp('B的等级为A3');
elseif max([u1, u2, u3, u4, u5]) == u4
disp('B的等级为A4');
else
disp('B的等级为A5');
end
```
以上就是利用两种不同的模糊模式识别准则判断样品B的等级的实现方法,希望能帮到您。
阅读全文