matlab交互式程序设计示例:[3]FINDS算法试验
1、FINDS算法:
数据结构定义:
% %A=[sunny,warm,normal,strong,warm,change yes;
% % sunny,warm,high,strong,warm,same yes ;
% % sunny,warm,high,strong,cold,change yes ;
% % rainy,cold,high,strong,warm,change no];
% %第一,二,三行是yes,为正例 用1表示;第四行是no,为反例 用0表示
% %设各种属性的第一种取值为1,第二种取值为2,第三种取值为3,取为?设为0,哪种值都不取设为4
h=[4,4,4,4,4,4];%将h初始化为H中最特殊假设
A=[1,1,1,1,1,1,1;
1,1,2,1,1,2,1;
1,1,2,1,2,1,1;
2,2,2,1,1,1,0];
![matlab交互式程序设计示例:[3]FINDS算法试验](https://exp-picture.cdn.bcebos.com/22c4fe36e29147e8e7f9d1c1b603bbea3f8658ad.jpg)
2、在MATLAB中一个新建一个文件名为find.s输入如下内容代码
function Finds()
% %A=[sunny,warm,normal,strong,warm,change yes;
% % sunny,warm,high,strong,warm,same yes ;
% % sunny,warm,high,strong,cold,change yes ;
% % rainy,cold,high,strong,warm,change no];
% %第一,二,三行是yes,为正例 用1表示;第四行是no,为反例 用0表示
% %设各种属性的第一种取值为1,第二种取值为2,第三种取值为3,取为?设为0,哪种值都不取设为4
h=[4,4,4,4,4,4];%将h初始化为H中最特殊假设
A=[1,1,1,1,1,1,1;
1,1,2,1,1,2,1;
1,1,2,1,2,1,1;
2,2,2,1,1,1,0];
%前三行均为正例,故g不变,s改变
for i=1:4
for j=1:6
if A(i,7)==1
if h(:,j)~=A(i,j)&&h(:,j)~=4
h(:,j)=0;
elseif h(:,j)~=A(i,j)&&h(:,j)==4
h(i,j)=A(i,j);
elseif h(:,j)~=A(i,j)&&h(:,j)==0
h(:,j)=0;
elseif h(:,j)==A(i,j)
continue;
end
end
end
end
disp('极大特殊假设h:');
disp(h);
3、第一步在command windows 里输入finds 运行这个文件。(源代码要放到MATLAB的work工作目录中,以待运行路径搜索)命令窗口如下图所示
![matlab交互式程序设计示例:[3]FINDS算法试验](https://exp-picture.cdn.bcebos.com/6002c9d4483104eb28beb7bc092b74ee1d324ead.jpg)