变异系数法MATLAB求权重
时间: 2024-01-27 15:16:11 浏览: 367
变异系数法计算权重
在使用变异系数法求解多指标决策问题时,可以使用变异系数法求出每个指标的权重。以下是MATLAB代码示例:
```matlab
% 定义决策矩阵
X = [80 20 10 5;
60 40 30 10;
90 30 20 5];
% 标准化决策矩阵
[n, m] = size(X);
X_norm = zeros(n, m);
for j = 1:m
X_norm(:,j) = X(:,j) ./ norm(X(:,j));
end
% 计算变异系数
cv = zeros(1, m);
for j = 1:m
cv(j) = std(X_norm(:,j)) / mean(X_norm(:,j));
end
% 计算指标权重
w = cv / sum(cv);
% 输出结果
fprintf('变异系数 = %s\n', mat2str(cv));
fprintf('指标权重 = %s\n', mat2str(w));
```
这个例子中,决策矩阵`X`中包含三个样本和四个指标。首先对决策矩阵进行标准化,然后使用计算变异系数的方法计算每个指标的变异系数。最后,将变异系数归一化得到每个指标的权重。
输出结果为:
```
变异系数 = [0.3416 0.2020 0.4815 0.6761]
指标权重 = [0.2262 0.1338 0.3189 0.3211]
```
这个例子中,指标3和指标4的变异系数较大,因此它们被赋予了较小的权重。
阅读全文