还在为选择困难症而犯愁吗?想知道如何用MATLAB进行矩阵的运算操作吗?今天小编为大家带来“决策矩阵在MATLAB中的基础操作”,一起来看看吧!
⚡ 多图预警!建议连接WIFI阅读!⚡
(1)MATLAB简介
MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室),软件主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式。
(2)界面介绍
MATLAB打开后的界面如下所示(界面中各窗口的位置可以任意调整):
其中,
红色区域为工具栏,我们能在上边执行基础操作;
绿色区域为文件夹目录,当前的文件就会默认保存在该文件夹里;
橙色区域为命令行窗口,脚本执行的命令过程及结果都能在上面显示,我们也可通过该窗口直接下达命令;
蓝色区域为工作区,所有变量都会显示在里面,双击变量还能查看具体详情;
紫色区域为历史记录,我们可通过该窗口查看之前的所有操作。
(3)命令行窗口的基础操作
命令行窗口可以执行所有运算操作,如果输入1+1,按回车键后就会得到相应结果了。
在为变量赋值时,只需在想要赋值的变量后添加等号即可,赋值后变量会显示在工作区中。
如果要表示矩阵,则要用到英文字符的中括号“[ ]”和分号“;”,两个数之间插入空格代表同一行,插入分号代表进入下一列,2*3矩阵和3*2矩阵的表示方法如下图所示:
对于增广矩阵,[A B]表示横向扩展,[A;B]表示纵向扩展。
进行矩阵的运算时,令A与B分别代表两个不同的矩阵,其运算符表示方法如下:
A*B【矩阵乘法】
A.*B【矩阵对应数值相乘】
A/B【矩阵除法】
A./B【矩阵对应数值相除】
A^a【矩阵的乘方】
A.^a【矩阵所有数值的乘方】
A’【矩阵转置】
除此之外,矩阵的其他命令符还有:
max(A)【列举矩阵每列最大值】
sum(A)【列举矩阵每列和】
mean(A)【列举矩阵每列平均值】
sort(A)【将矩阵的列从小到大排序】
sortrows(A)【依照第一列的数从小到大排序行】
length(A)【显示矩阵最大维度的长度】
eye(a)【n×n的单位矩阵】
zeros(a,b)【a行b列的0矩阵】
ones(a,b)【a行b列的单位矩阵】
diag(a b c d)【对角线上的值为abcd,其他数都为0】
(4)关键词命令
以下简单列举常用的关键词:
sqrt( )【开根号】
who whos( )【查询数值属性】
inf【无限大】
clc【清除命令行窗口】
clear【清除变量】
现有如下图所示的决策矩阵,请将其输入至MATLAB并进行标准化处理。
*本次案实例数据来源详见文末参考文献。
(1)矩阵录入
由于决策数据为三角模糊数,是一个模糊集,因此可将其看做一个向量或一个矩阵。所以我们在输入矩阵时,思路为大矩阵中嵌套小矩阵,我们可采取以下两种方法:
首先是Cell数组。我们可通过大括号和中括号实现矩阵的嵌套。
执行后得到以下结果:
我们能在工作区查看变量A的赋值。
另一个方法就是不用cell数组,直接输入数据:
第二种方法更便于矩阵计算,因此本文选择该方法进行标准化处理。
(2)矩阵标准化
为了方便将各属性进行比较分析,利用下述公式进行标准化处理以得到规范化矩阵:
根据公式,取矩阵A每列最大值:
选取矩阵元素的方法有以下几种:
A=(a,b)【提取矩阵A中第a行第b列的元素】
A=([a b],[c d])【提取矩阵A中第a、b行与c、d列相交的所有元素以矩阵展示】
替换矩阵元素方法如下:
A(a,b)=c【将矩阵A中第a行第b列的元素替换为c】
按照上述教程,我们可输入format bank使矩阵数据以小数点两位数的形式显示,并通过脚本编写以下程序:
i=1;
o=2;
p=3;
k=[1 2 3];
n=1;
m=1
for C1=A(k,i)./B(p);
D1=A(k,o)./B(o);
E1=A(k,p)./B(i);
F1=[C1 D1 E1];
i=i+3;
o=o+3;
p=p+3;
C2=A(k,i)./B(p);
D2=A(k,o)./B(o);
E2=A(k,p)./B(i);
F2=[C2 D2 E2];
i=i+3;
o=o+3;
p=p+3;
C3=A(k,i)./B(p);
D3=A(k,o)./B(o);
E3=A(k,p)./B(i);
F3=[C3 D3 E3];
i=i+3;
o=o+3;
p=p+3;
if i>7
F4=[F1 F2 F3]
end
end
if F4(m,n)>1
F4(m,n)=[1];
m=m+1;
if m>9
m=1,n=n+1;
end
else m=m+1;
if m>9
m=1,n=n+1;
end
end
disp (F4)
即可得到标准化后的矩阵:
一下就出来了,是不是很简单呢?赶快动手试一试吧!
Matlab is a commercial mathematical software produced by MathWorks, which is used in data analysis, wireless communication, deep learning, image processing and computer vision, signal processing, quantitative finance and risk management, robotics, control systems and other fields.
Matlab is a combination of the words Matrix and Laboratory, meaning the matrix factory (matrix laboratory), software is mainly for scientific computing, visualization and interactive programming of high-tech computing environment. It integrates numerical analysis, matrix calculation, scientific data visualization, modeling and simulation of nonlinear dynamic systems and many other powerful functions in an easy-to-use window environment. It provides a comprehensive solution for scientific research, engineering design and many scientific fields that must carry out effective numerical calculation. And to a large extent, it gets rid of the traditional non-interactive programming language (such as C, Fortran) editing mode.