Topsis优劣解距离法 mlx代码

Posted aminor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Topsis优劣解距离法 mlx代码相关的知识,希望对你有一定的参考价值。

请参考https://blog.csdn.net/qq_36384657/article/details/98188769

技术图片

mlx代码

topsis 优劣解距离法
参数说明:
分数、获奖次数、价值等 属于极大型指标(效益型)
不及格次数、被批评次数、成本等 属于极小型指标(成本型)
clc;clear;
judge1 = [89 60 74 99]‘; % 分数
judge2 = [89 60 74 99; 2 0 1 3]‘; % 分数 和 被批评次数
算法核心:
一个指标的情况:
(排序不就行了???)
多个指标的情况:
https://blog.csdn.net/qq_36384657/article/details/98188769
% 1.将指标【转化为极大型】 x = max - x;
judge2(:,2) = max(judge2(:,2)) - judge2(:,2);

% 2.【标准化】处理 [每个元素除以其所在列各元素平方和的开方]
judge2 = judge2 ./ sqrt( sum(judge2 .^ 2)  );

% 3.【找出距离】 找出与最大最小值的距离
% 这里的最大(小)值 (max1,max2,max3,...)为各列的最大(小)值
nmax = max(judge2);
nmin = min(judge2);

distanceMax =  sqrt(sum((judge2 - nmax) .^ 2 ,2)); % 减去最大值,平方,按照行求和,开根号
distanceMin =  sqrt(sum((judge2 - nmin) .^ 2 ,2)); % 减去最小值,平方,按照行求和,开根号

% 4.【计算分值】 (x - min) / (max - min)
score = distanceMin ./ (distanceMax + distanceMin);

% 5.【归一化】
score = score ./ sum(score);
end
% 显示名次
[~,I] = sort(score);
disp(‘最终排名:‘);
disp([score I])

以上是关于Topsis优劣解距离法 mlx代码的主要内容,如果未能解决你的问题,请参考以下文章

数学建模复习(2. topsis优劣解距离法)

数学建模暑期集训7:TOPSIS法(优劣解距离法)

数学建模优劣解距离法Topsis模型部分

Matlab数学建模TOPSIS(优劣解距离法)

Matlab数学建模TOPSIS(优劣解距离法)

TOPSIS算法