写在前面
Matlab是一款非常强大的数学计算工具,学习并使用它进行处理一些数据运算,将会非常之高效。
今天有同学问我了一道关于利用Matlab 解决二维矩阵问题,利用空闲时间给他解答,希望能帮助到他。
问题
1,问题描述
- 创建一个矩阵a,其内容为50行50列随机矩阵;
- 用循环语句求矩阵内元素的最大值;
- 用循环语句求矩阵内元素的最小值;
- 用循环语句求矩阵内元素的所有元素和;
- 用循环语句将对角线元素显示出来;
2,问题分析
Matlab中有很多函数库,它们可以帮助我们解决很多函数问题,因此在解决问题时,调用它们,会大大简便我们的操作。
针对这个问题,我第一个想法就是利用Matlab自带的函数去求解,得到对应答案。
如果同学还需要自己建函数来表示,只需要对原库函数进行分析即可。
3,解决问题
- 创建一个矩阵a,其内容为50行50列随机矩阵;
rand(m)是生成m*m,0到1之间的随机数,但由于是生成的为小数,所以我将范围扩大100倍,此时就出现了下面代码:
A=round(100*rand(50))
结果部分展示:
因为生成50*50的矩阵,截图页面展示不下,只显示部分截图。
2.求矩阵内元素的最大值,最小值,求和;
可以利用max()来解决,max(A),代表A中每列的最大值,max(max(A))就可以代表,整个矩阵的最大值。
代码如下:
max(max(A))
结果展示:
同理最小值代码
min(min(A))
结果展示
给矩阵求和亦是如此
Sum=sum(sum(A))
结果显示
3.求矩阵内元素的平均值;
a=mean(A,1) %按列平均
b=mean(A,2) %按行平均
c=mean(A(:)) %全部平均
结果显示:
4.将对角线元素显示出来
在matlab中也有一个函数专门解决对角线元素的输出。
D = diag( A )
再将结果转置
B=D’
结果如下
至此上面的问题全部解决。
至于,通过循环来些函数实现,因为时间的问题,我不能一一列出,但是你可以通过输入help f(x)
来具体查询函数的功能和定义,然后逆推写出程序。
方法如下:
因为同学需要帮助,我花半中午时间来梳理,写作,希望能够帮助到你。
如果能帮助到CSDN上的同学,更是荣幸。
作者:新海
写于12.1日
分享也是一种成长。