终于放假了!百百今天教一下大家用MATLAB轻松解决矩阵数值运算问题!

matlab求函数最大值程序(matlab求函数极值点)(1)

要运用矩阵,首先要会生成一个你想要的矩阵!

一、建立矩阵

1、直接输入矩阵

matlab求函数最大值程序(matlab求函数极值点)(2)matlab求函数最大值程序(matlab求函数极值点)(3)

上面这个例子是直接输入生成矩阵的方法,可以发现输入方式不同也可以得到相同的结果,大致规则如下

①把矩阵的元素放在一个方括号“[ ]”里;

②矩阵之间的元素用逗号或者空格隔开;

③矩阵分行用分号或者回车隔开。

但是万一我要生成一个很大的矩阵或者未知的矩阵怎么办呢?总不能一个个敲,太累了吧!

matlab求函数最大值程序(matlab求函数极值点)(4)

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等分的向量。

matlab求函数最大值程序(matlab求函数极值点)(5)matlab求函数最大值程序(matlab求函数极值点)(6)

在了解了一些基本生成矩阵的方法之后,我们可以对相应的元素进行调用或者进行修改,那么怎么表示矩阵中的元素呢?

二、元素引用和赋值

简单的来说,就是定位,对于二维矩阵来说,需要定位几个东西,首先,找到我们所需的矩阵名!然后第几行、第几列:比如H(i,j)H为矩阵名,i为行数,j为列数,则可以显示H矩阵中的第i行第j列的元素是什么。

但有时候,问题比较复杂,我需要提取不止一个值,而是某行、某列、或者某几行某几列,该咋整呢?

matlab求函数最大值程序(matlab求函数极值点)(7)

原则上还是三定位:定位矩阵名;接着定位所需的行;定位所需的列;

差别就在定位行列的表示,比如:我要取出第1-3行数据,第2、第4列数据,则表示为a([1:3],[2,4]),效果如下:

matlab求函数最大值程序(matlab求函数极值点)(8)matlab求函数最大值程序(matlab求函数极值点)(9)

总结一下,“(m:n)”表示取出从m(行/列)到n(行/列)的所有行/列;“(m,n)”表示取出第m(行/列)和第n(行/列);如果直接用“:”,表示取所有行或所有列,如下:

matlab求函数最大值程序(matlab求函数极值点)(10)

表示取出了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求函数最大值程序(matlab求函数极值点)(11)

下回将教大家如何用MATLAB画出美美的图!!(假装很美)