终于放假了!百百今天教一下大家用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画出美美的图!!(假装很美)
然后不报希望地问问大家比较想看哪些方面的内容呢?