我们首先用一个基本的案例来用MatLab,进行简单的筛选过程的实现,我们首先在Excel表中建立几个初始案例,最好是有代表性的,可以根据筛选条件进行有效的筛选,我建立的Excel表如下:
之后我们打开Matlab,我们要做的第一步就是用Matlab软件读取Excel表中的数据并显示,由于我们这个Excel表中既有汉字,又有数据类型的小数,所以我们采用cell array类型的数据,读取的代码如下:
[~,~,rawdata]=xlsread('shuizhili.xlsx')
后缀为.xlsx,路径可以按照自己的Excel表存放的路径进行填写。
如图所示,运行过后,显示为数组形式,共六行九列数据。
之后我们要按照筛选条件,筛选出必选指标,首先需要满足独立性检验为是的,因为一共有六行,我们可以使用for循环:
for i=1:6
if(rawdata(i,9)=="是")
end
其中rawdata(i,9)意思为从第一行到第六行都取出第九列的name进行比较。接下来我们可以依次进行可比性检验,可测性判断的比较。
不过由于我们要进行重要性判断,出现的频率检验,都是用数据进行比较大小,这时候我们就不能使用rawdata()了,而是要使用rawdata{},因为圆括号是选出数组的name,大括号是选出数组里面的内容,所以我们要使用大括号,具体的判断条件如下:
if((rawdata{i,4}>0.25&&rawdata{i,5}>0.25)||(rawdata{i,4}<0.25&&rawdata{i,5}>0.25&&rawdata{i,8}>2))
rawdata(i,:)
end
我们将所有判断条件都写入,具体程序清单如下;
close all; clear all; clc
[~,~,rawdata]=xlsread('shuizhili.xlsx')
for i=1:6
if(rawdata(i,9)=="是")
if(rawdata(i,7)=="是")
if(rawdata(i,6)=="是")
if(rawdata{i,8}>1)
if((rawdata{i,4}>0.25&&rawdata{i,5}>0.25)||(rawdata{i,4}<0.25&&rawdata{i,5}>0.25&&rawdata{i,8}>2))
rawdata(i,:)
end
end
end
end
end
end
运行截图如下:
经过运行后,筛选出两个必选指标,筛选结果正确。