TOPSIS法(优劣解距离法)代码编写
代码来自数学建模清风的学习视频
例题:评价下表中20条河流的水质情况。
注:含氧量越高越好;PH值越接近7越好,细菌总数越少越好;植物营养物量介于10-20之间最好,超过20或低于10均为不好。
一.导入数据
-
在工作区右键,点击新建(Ctrl+N),输入变量名称为X
-
在Excel中复制数据,再回到够变量区中右键,点击粘贴Excel数据(Ctrl+Shift+V)
-
关掉这个窗口,点击X变量,右键另存为,保存为mat文件(下次就不用复制粘贴了,只需使用load命令即可加载数据)
-
注意,代码和数据要放在同一个目录下哦,且Matlab的当前文件夹也要是这个目录。
load data_water_quality.mat
二. 判断是否需要正向化
%n是行,m是列;行数为评价对象,列数为评价指标
[n,m] = size(X);
disp(['共有' num2str(n) '个评价对象, ' num2str(m) '个评价指标'])
%判断是否需要正向化
Judge = input(['这' num2str(m) '个指标是否需要经过正向化处理,需要请输入1 ,不需要输入0: ']);