终于放假了!百百今天教一下大家用MATLAB轻松解决矩阵数值运算问题!
要运用矩阵,首先要会生成一个你想要的矩阵!
一、建立矩阵
1、直接输入矩阵
上面这个例子是直接输入生成矩阵的方法,可以发现输入方式不同也可以得到相同的结果,大致规则如下:
①把矩阵的元素放在一个方括号“[ ]”里;
②矩阵之间的元素用逗号或者空格隔开;
③矩阵分行用分号或者回车隔开。
但是万一我要生成一个很大的矩阵或者未知的矩阵怎么办呢?总不能一个个敲,太累了吧!
2、运用函数建立矩阵(一些常用标准矩阵及向量生成方法)
①ones(n) %创建n维全1方阵
ones(n,m)%创建n行m列全1矩阵
②zeros(n) %创建n维全0方阵
zeros(n,m)%创建n行m列全0矩阵
③rand(n) %创建n维随机方阵
rand(n,m)%创建n行m列随机矩阵
④向量生成方法:
a=m:n %生成步长为1的均匀向量
a=m:步长:n %步长可以自由设置
linspace(m,n,k):将起始值m终止值n进行k等分的向量。
在了解了一些基本生成矩阵的方法之后,我们可以对相应的元素进行调用或者进行修改,那么怎么表示矩阵中的元素呢?
二、元素引用和赋值
简单的来说,就是定位,对于二维矩阵来说,需要定位几个东西,首先,找到我们所需的矩阵名!然后第几行、第几列:比如H(i,j)中H为矩阵名,i为行数,j为列数,则可以显示H矩阵中的第i行第j列的元素是什么。
但有时候,问题比较复杂,我需要提取不止一个值,而是某行、某列、或者某几行某几列,该咋整呢?
原则上还是三定位:定位矩阵名;接着定位所需的行;定位所需的列;
差别就在定位行列的表示,比如:我要取出第1-3行数据,第2、第4列数据,则表示为a([1:3],[2,4]),效果如下:
总结一下,“(m:n)”表示取出从m(行/列)到n(行/列)的所有行/列;“(m,n)”表示取出第m(行/列)和第n(行/列);如果直接用“:”,表示取所有行或所有列,如下:
表示取出了B矩阵中第2行的所有列数据。
三、常用运算符号和函数
1、基本运算:
分为矩阵运算和数组运算,差别是数组运算要多加一个点号,例如:“* 矩阵乘法”“.* 数组乘法”;同时需注意矩阵乘法不满足乘法交换律。
2、关系运算:
==:等于
~=:不等于(注意却别C语言中不等于为!=)
>=:大于等于
<=:小于等于
3、逻辑运算:真为“1”假为“0”
&:与;
| :或;
~:非;
4、函数:
①[m,n]=size(A); %把矩阵A的行数赋值给m;列数赋值给n
②length(A); %矩阵A的列数
③sum求和;max求最大值;min求最小值;mean求平均值;
④sqrt:平方根;exp:自然指数函数;log:自然对数函数
⑤abs:求绝对值或求复数的模值;angle:求复数的辐角;real:求复数的实部;imag:求复数的虚部;
⑥ceil:向+∞取整;fix:向0取整;floor:向-∞取整;round:向最近整数取整;
⑦mod:模除取余;rem:求余数
以上这些函数还是很实用滴!记住它们把!!!
下回将教大家如何用MATLAB画出美美的图!!(假装很美)