matlab序列的尺度变换怎么实现(MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用)

分享兴趣,传播快乐,增长见闻,留下美好!亲爱的您,这里是LearningYard学苑。

还在为MATLAB编程而犯愁吗?想知道如何用MATLAB进行矩阵嵌套的运算操作吗?今天小编为大家带来“MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用”,一起来看看吧!

matlab序列的尺度变换怎么实现(MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用)(1)

⚡ 多图预警!建议连接WIFI阅读!⚡


一、元胞数组简介

(1)概念

元胞数组是MATLAB的一种特殊数据类型,可以将元胞数组看作一种无所不包的通用矩阵,或者叫做广义矩阵。组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同,所以元胞数组的元素叫做元胞(cell)。

matlab序列的尺度变换怎么实现(MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用)(2)

(2)适用范围

假设自己需要在MATLAB中保存4组信息,它们分别是:

【实数】6;

【向量】[1 2 3];

【文本】LearningYard;

【矩阵】magic(4)。

我们可以用MATLAB将他们保存在2×2的cell元胞数组中,将其当作一个储存信息的“储物柜”。

matlab序列的尺度变换怎么实现(MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用)(3)

(3)代码编写

新建脚本,我们采用大括号{ }进行cell数组的创建:

matlab序列的尺度变换怎么实现(MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用)(4)

运行后,命令行窗口如下显示:

matlab序列的尺度变换怎么实现(MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用)(5)

除此之外,我们还可以通过指令“celldisp”来显示所有元胞的内容。

(4)相关操作

这里简要介绍cell数组的常用相关操作。

① 提取数组具体元素

假设需要提取上述2×2的cell数组中的字符串"LearningYard",我们可以通过类似提取矩阵元素的操作指令进行:

cell{2,1}或cell{2}。

注:这里需要用到大括号。

② 元胞数组的转化

以下指令用于元胞数组的转化,方便程序的编写。

cell2mat:将元胞数组转变成为普通的矩阵。

mat2cell:将数值矩阵转变成为元胞数组。

num2cell:将数值数组转变成为元胞数组。

二、毕达哥拉斯犹豫模糊集

(1)概念

毕达哥拉斯犹豫模糊集(PHFS)由毕达哥拉斯模糊集(PFS)和犹豫模糊集(HFS)发展而来,其概念由刘卫锋等于2016年提出。

matlab序列的尺度变换怎么实现(MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用)(6)

(2)代码编写

对于毕达哥拉斯犹豫模糊集而言,我们可以把它当作矩阵的嵌套,即“大矩阵中含有小矩阵”。

假设a为毕达哥拉斯犹豫模糊数,且a=[<0.3,0.5>,<0.8>]。左边<0.3,0.5>为隶属度,右边<0.8>为非隶属度,他们各自可以用一个矩阵来表示,分别为1×2矩阵[0.3,0.5]与1×1矩阵[0.8]。因为当它们合在一起时才表示毕达哥拉斯犹豫模糊数,所以再使用一个大矩阵将其包含,这里用大括号表示cell数组,即

在MATLAB中用cell表示为a={[0.3,0.5],0.8}。

由于决策矩阵由多个毕达哥拉斯犹豫模糊集组成,因此需要将若干个cell数组放置于更大的数组中。以文献[1]中的毕达哥拉斯犹豫模糊矩阵为例,代码的编写如下所示。

matlab序列的尺度变换怎么实现(MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用)(7)

PHFS=...

{{[0.3,0.8],0.4},{[0.6,0.8],[0.4,0.5]},{[0.7,0.8],[0.4,0.5]},{[0.5,0.7,0.8].0.4};...

{[0.7,0.8],[0.3,0.4]},{[0.3,0.4,0.5],0.7},{[0.3,0.4],[0.7,0.8]},{[0.6,0.7],[0.3,0.4]};...

{[0.4,0.5],0.6},{[0.4,0.5,0.6],0.5},{[0.7,0.8],[0.4,0.5]},{[0.8,0.9],0.3};...

{[0.5,0.6],[0.2,0.3]},{0.7,[0.4,0.5]},{[0.5,0.6,0.7],0.6},{[0.7,0.8],[0.2,0.3]}}

matlab序列的尺度变换怎么实现(MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用)(8)

此时命令行窗口会显示如下结果:

matlab序列的尺度变换怎么实现(MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用)(9)

打开变量PHFS,双击数组内第一行第一列的元素,我们可查看内部的构成。

matlab序列的尺度变换怎么实现(MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用)(10)

如果再次双击第一个元素,则可进一步查看隶属度中的内容。

matlab序列的尺度变换怎么实现(MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用)(11)

三、决策指令

(1)矩阵指标正向化

针对决策矩阵中的负向成本型指标,我们需要对其进行标准化处理。指标正向化公式如下图公式(5)所示:

matlab序列的尺度变换怎么实现(MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用)(12)

以上述cell数组PHFS为例,假设属性C1为成本型指标,我们可输入如下代码进行指标的正向化处理。

for i=[1:4]

Exchange_unit=PHFS{i,1}(1);

PHFS{i,1}(1)=PHFS{i,1}(2);

PHFS{i,1}(2)=Exchange_unit;

end

display(PHFS)

matlab序列的尺度变换怎么实现(MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用)(13)

现在C1属性下决策方案A1的隶属度与非隶属度发生颠倒,顺利完成正向化处理。其原理是用for循环对第一列下每一行元素的隶属度与非隶属度进行位置更替,用Exchange_unit代替更替项,防止数据出错。

(2)矩阵元素长度标准化

根据Khan于文献[2]中所述,要想比较两个毕达哥拉斯犹豫模糊集的大小或对其进行测距,需要对其长度进行统一。在决策中,可根据决策者的乐观或悲观程度,改变添加元素的大小。在此处,因决策者持悲观态度,所以向隶属度或非隶属度的长度小于所有PHFNs中长度最大值的PHFNs添加的元素,为当前集合内元素的最小值。文献原文如下:

Clearly the numbers of values in dissimilar PHFNs of PHFSs are dissimilar. In order to extra correctly determine the distance between two PHFSs, we must spread the smaller one till both of them have the equal length while we compare them. Permitting to the procedures stated above, we consider that the DM is pessimistic, and change the Pythagorean hesitant fuzzy data by adding the minimal values as listed in Table 2. Then, we apply the established method to get the most required alternative (s), which includes the following two cases.

该文献中决策原初矩阵和标准化决策矩阵分别如下图表1和表2所示。

matlab序列的尺度变换怎么实现(MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用)(14)

如果将此方法应用于刚才的数组PHFS中,其标准化步骤为:

Standard_PHFS=PHFS;

PHFS_Size=size(Standard_Matrix);

PHFS_Row=PHFS_Size(1);

PHFS_Column=PHFS_Size(2);

for i=[1,PHFS_Row]

for j=[1,PHFS_Column]

for m=[1 2]

if length(PHFS{i,j}{m})==2

Standard_PHFS{i,j}{m}=[PHFS{i,j}{m}(1),PHFS{i,j}{m}(1),PHFS{i,j}{m}(2)];

else if length(PHFS{i,j}{m})==1

Standard_PHFS{i,j}{m}=[PHFS{i,j}{m}(1),PHFS{i,j}{m}(1),PHFS{i,j}{m}(1)];

end

end

end

end

end

display(Standard_PHFS)

matlab序列的尺度变换怎么实现(MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用)(15)

此时命令行窗口如下显示:

matlab序列的尺度变换怎么实现(MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用)(16)

打开数组,可以看到所有元素都进行了标准化。

matlab序列的尺度变换怎么实现(MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用)(17)


英语学习

Cellular array is a special data type of Matlab, which can be regarded as an all-encompassing general matrix, or called generalized matrix. The elements of a cellular array can be constants or constants of any data type, and each element can have a different size and memory footprint. The contents of each element can also be completely different, so the elements of a cellular array are called cells.

Clearly the numbers of values in dissimilar PHFNs of PHFSs are dissimilar. In order to extra correctly determine the distance between two PHFSs, we must spread the smaller one till both of them have the equal length while we compare them. Permitting to the procedures stated above, we consider that the DM is pessimistic, and change the Pythagorean hesitant fuzzy data by adding the minimal values as listed in Table 2. Then, we apply the established method to get the most required alternative (s), which includes the following two cases.


本期的分享就到这里,如果您对今天的文章有独特的想法,欢迎给我们留言,让我们相约明天,祝您今天过得开心快乐!

本文由LearningYard学苑原创,仅代表作者个人观点,如有侵权请联系删除。

翻译参考来源:有道翻译。

内容参考来源:

[1] 刘卫锋,何霞. 毕达哥拉斯犹豫模糊集[J].模糊系统与数学,2016(30):107-115.

[2] Ali K, Saleem A, Asad A, et al. An extension of VIKOR method for multi-attribute decision-making under Pythagorean hesitant fuzzy setting[J]. Granular Computing, 2019:1-14.

matlab序列的尺度变换怎么实现(MATLAB元胞数组在毕达哥拉斯犹豫模糊环境下的指标标准化应用)(18)

【感谢阅读】

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页