MATLAB基础操作,矩阵乘法、数组矩阵索引、最大最小运算符、零矩阵/随机矩阵/单位矩阵的生成、log函数、Inf和NaN的含义,语句过长用连接符换行、逻辑运算符以及区别

这篇具有很好参考价值的文章主要介绍了MATLAB基础操作,矩阵乘法、数组矩阵索引、最大最小运算符、零矩阵/随机矩阵/单位矩阵的生成、log函数、Inf和NaN的含义,语句过长用连接符换行、逻辑运算符以及区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本文总结MATLAB编程时的一些基本操作,适用于新手小白,主要包括矩阵相乘、生成矩阵、矩阵基本操作、数组索引、最大最小操作符。


一、矩阵相乘

线性代数的两个矩阵相乘:用符号 “ * ” 例如A*B得到A与B的矩阵相乘,A的列数与B的行数要一致。
矩阵对应元素相乘:用符号点乘 " . * " A 点乘B得到A矩阵与B矩阵对应元素相乘的结果。
代码示例:
matlab矩阵的最大索引,MATLAB编程与绘图,matlab,矩阵,算法,线性代数

二、矩阵生成

1.直接输入

语法:
(1)在[]内输入矩阵元素;
(2)矩阵同行元素以逗号‘,’或空格分隔;
(3)矩阵不同行用分号‘;’或回车分隔;
(4)若[]中无元素表示空矩阵(会有警告出现,提示你预先分配内存);

代码如下(示例):
matlab矩阵的最大索引,MATLAB编程与绘图,matlab,矩阵,算法,线性代数

2.单位矩阵

语法:

A = eye(m,n)
m-行数目
n-列数目

代码如下(示例):

代码如下(示例):
matlab矩阵的最大索引,MATLAB编程与绘图,matlab,矩阵,算法,线性代数

3.全零矩阵

语法:

A = zeros(m,n)
m-行数目
n-列数目

代码如下(示例):

matlab矩阵的最大索引,MATLAB编程与绘图,matlab,矩阵,算法,线性代数

2.全一矩阵

语法:

A = ones(m,n)
m-行数目
n-列数目

代码如下(示例):
matlab矩阵的最大索引,MATLAB编程与绘图,matlab,矩阵,算法,线性代数

2.随机矩阵

语法:

A = rand(m,n)
m-行数目
n-列数目
rand 生成0-1之间的数,需要其他值的可以在后面加减乘除一个数
A = rand(m,n) * 10  生成取值为0-10的矩阵
A = rand(m,n) + 5  生成取值为5-15的矩阵
A = -rand(m,n)  生成取值为-1-0的矩阵

代码如下(示例):
matlab矩阵的最大索引,MATLAB编程与绘图,matlab,矩阵,算法,线性代数
matlab矩阵的最大索引,MATLAB编程与绘图,matlab,矩阵,算法,线性代数
matlab矩阵的最大索引,MATLAB编程与绘图,matlab,矩阵,算法,线性代数

三、矩阵操作

1.转置:符号-单引号 ’
A转置=A’
2.两个矩阵拼接:符号-中括号[]
[A,B:A与B水平拼接
[A;B]:A与B垂直拼接

代码如下(示例):
matlab矩阵的最大索引,MATLAB编程与绘图,matlab,矩阵,算法,线性代数

四、矩阵/数组索引

直接看图
代码如下(示例):
matlab矩阵的最大索引,MATLAB编程与绘图,matlab,矩阵,算法,线性代数

五、最大最小运算符

最大运算符max
最小运算符min
*语法:

max([a,b,c,d,,,])——取出矩阵中的最大元素
max(A)——取出矩阵A中的最大元素
max([a,b,c,d,,,])——取出矩阵中的最小元素
max(A)——取出矩阵A中的最小元素

代码如下(示例):
matlab矩阵的最大索引,MATLAB编程与绘图,matlab,矩阵,算法,线性代数

六、矩阵求和-sum函数

1.向量求和
*语法:

A = [1 2 3]
sum(A)——得到A矩阵所有元素的和
sum([4 5 6])——得到行向量4 5 6的和

代码如下(示例):
matlab矩阵的最大索引,MATLAB编程与绘图,matlab,矩阵,算法,线性代数
matlab矩阵的最大索引,MATLAB编程与绘图,matlab,矩阵,算法,线性代数
2.矩阵按列求和
*语法:
sum(需要按列求和的矩阵)

A = [1 2 3;4 5 6;1 1 1]
sum(A)

代码如下(示例):
matlab矩阵的最大索引,MATLAB编程与绘图,matlab,矩阵,算法,线性代数
3.矩阵按行求和
*语法:
sum(需要按列求和的矩阵,2)

A = [1 2 3;4 5 6;3 2 1]
sum(A,2)

代码如下(示例):
matlab矩阵的最大索引,MATLAB编程与绘图,matlab,矩阵,算法,线性代数

4.矩阵所有元素求和
*语法:加上标识符“all”
sum(要求和的矩阵,‘all’)

A = [1 2 3;1 2 3;4 5 6]
sum(A,'all')

代码如下(示例):
matlab矩阵的最大索引,MATLAB编程与绘图,matlab,矩阵,算法,线性代数

七、语句过长换行书写

编写matlab代码程序时候,可能会出现代码太长,一行写的过长会不适合阅读,也难以识别错误
解决办法:
使用连接符号(“…”)
语法:三个点就是连接符
A = a+b+…
c-d-…
e

A = [1 2 3;1 2 3;4 5 6]
B= A(1,1)+A(1,2)+...
A(1,3)+A(2,1)-...
A(3,1)
结果:B= 1+2+3+1-4=3

代码如下(示例):
matlab矩阵的最大索引,MATLAB编程与绘图,matlab,矩阵,算法,线性代数

八、逻辑运算符(与或非、异或、“&&“与”&”、“||“与”|”)

符号 含义
&
竖线
~
xor 异或
any(x) x中任意有一元素非零时,返回“1”,否则返回“0”
all(x) x的所有元素非零时,返回“1”,否则返回“0”

“&”和“|”操作符可比较两个标量或两个同阶矩阵.对于矩阵来说必须符合规则,如果A和B都是0-1矩阵,则A&B或A|B也都是0-1矩阵,这个0-1矩阵的元素是A和B对应元素之间逻辑运算的结果,逻辑操作符认定任何非零元素都为真,给出“1”,任何零元素都为假,给出“0”。

除上述逻辑运算符之外,MATLAB还可以使用"&&“和”||"运算符(&& 和 || 被称为 & 和 | 的short circuit形式)
Matlab中的逻辑运算"&&“与”&“,”||“与”|"的区别如下:

A&B
(1)首先判断A的逻辑值,然后判断B的值,然后进行逻辑与的计算。
(2)A和B可以为矩阵(e.g. A=[1 0],B=[0 0])。
A&&B
(1)首先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。
(2)A和B不能是矩阵,只能是标量。
"|"与“||”同理。

A&&B 首先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。这种用法非常有用,如果A是一个计算量较小的函数,B是一个计算量较大的函数,那么首先判断A对减少计算量是有好处的。

九、log函数在MATLAB中的表达

Matlab中的对数使用,matlab中提供了log10、log2和以e为底的对数。

表达式 含义
log() 以e为底的对数
log10() 以10为底的对数
log2() 以2为底的对数

十、Matlab中的Inf和NaN的含义

Matlab中的Inf和-Inf分别代表正无穷和负无穷。
NaN表示非数值的值,产生一般是由于0 做了分母或者运算溢出,产生了超出双精度浮点数数值范围的结果,非数值量则是因为0/0,或者Inf/Inf型的非正常运算。

语句 含义
Inf 正无穷
-Inf 负无穷
NaN 非数值结果

注意:两个NaN是不相等的

十一、同时给多个变量或矩阵赋值

很多时候需要给多个变量赋值,一行一行的写不仅过于冗长而且写起来很麻烦,下面就介绍一个可以一次性给多个变量或矩阵赋值的操作,即用函数deal().
具体代码如下:

// 同时给多个变量或矩阵赋值
[Y1, Y2, Y3,] = deal(X);  %Y1=Y2=Y3=X
[Y1, Y2, Y3,] = deal(zeros(K,M));  %Y1=Y2=Y3,全部赋值为K*M维的零矩阵
[Y1, Y2, Y3,] = deal(X1, X2, X3,);  %Y1=X1,Y2=X2,Y3=X3,常数和矩阵都可以这样操作
[x,y,z]=deal(100);  %x,y,z同时初始化为100
[a,b,c]=deal(‘mat’,'lab’,'sky’); %对a,b,c分别初始化为mat,lab,sky

十二、MATLAB取整与取余函数

1.取整函数

函数名 作用
fix 朝零方向取整
floor (地板)向下取整,即朝负无穷方向取整
ceil (天花板)向上取整,即朝正无穷方向取整
round 四舍五入到最近的整数

代码示例:

%%fix函数
fix(-1.3)=-1;
fix(1.9)=1

%%floor函数
floor(-1.3)=-2;
floor(1.3)=1;

%%ceil函数
ceil(-1.3)=-1;
ceil(1.3)=2;
	
%%round函数
round(-1.52)=-2;
round(1.3)=1

2.取余函数
(1)MATLAB中有两个类似函数:一个是取模(mod),另一个是取余(rem),两者的不同之处在于:
当x和y的正负号一样的时候,两个函数结果是相同的。
当x和y的符号不同时,rem函数结果的符号和x的一样,而mod和y一样。

(2)两个异号整数取模原理

先将两个整数看作是正数,再作除法运算
能整除时,其值为0
不能整除时,其值=除数×(整商+1)-被除数

总结

本文总结归纳了一些MATLAB的基础操作,包括矩阵乘法、数组矩阵索引、最大最小运算符、零矩阵/随机矩阵/单位矩阵的生成、log函数的表达、Inf和NaN的含义,语句过长用连接符换行语句、逻辑运算符以及区别文章来源地址https://www.toymoban.com/news/detail-764091.html

到了这里,关于MATLAB基础操作,矩阵乘法、数组矩阵索引、最大最小运算符、零矩阵/随机矩阵/单位矩阵的生成、log函数、Inf和NaN的含义,语句过长用连接符换行、逻辑运算符以及区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • matlab代码出现错误使用 / 矩阵维度必须一致;数组索引必须为正整数或逻辑值

            运算符号需要更换和注意,换成./或.*等,下图出错,圈起来那需要改成1./ 更正后如下:         有时候出现这个问题可能是犯了小错误,比如变量相乘忘了.*符合 更正后就不会出错,可以正常画三维图

    2024年02月05日
    浏览(40)
  • Matlab矩阵和数组的操作

    1、直接输入法 将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。 A = [16 3 2 13; 5 10 11 8; … 9 6 7 12; 4 15 14 1] A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 2、利用M文件建立矩阵 对于比较大且比较复杂的矩阵

    2023年04月09日
    浏览(29)
  • 最小二乘法的矩阵表达

    1 前期准备 为了方便表述,我们先做一些很简单的定义: 假设有一多项式函数: f ( x 1 , x 2 , ⋯   , x m ) = ∑ i = 1 m a i x i f( x_1,x_2,cdots ,x_m) =sum_{i=1}^m{a_ix_i} f ( x 1 ​ , x 2 ​ , ⋯ , x m ​ ) = i = 1 ∑ m ​ a i ​ x i ​ 我们将函数中的自变量都提取出来组成一个列向量 x x x : x

    2023年04月20日
    浏览(35)
  • 矩阵最小二乘法问题求解

    超定方程组是指方程个数大于未知量个数的方程组。对于方程组 A x = b Ax=b A x = b , A A A 为n×m矩阵,如果R列满秩,且nm。则方程组没有精确解,此时称方程组为超定方程组。 在实验数据处理和曲线拟合问题中,求解超定方程组非常普遍。比较常用的方法是 最小二乘法 。 如果

    2024年02月05日
    浏览(28)
  • 利用最小二乘法求解相机投影矩阵

    1、相机成像几何模型的建立 为了得到三维空间物体表面某点的几何位置与其所在二维平面图像中对应点之间的相关关系,需要建立相机成像的几何模型。 为了建立几何模型,首先需要构建几个重要的坐标系: 世界坐标系(World Coordinate):在环境中建立的三维坐标系,用来

    2024年02月05日
    浏览(34)
  • MATLAB基础知识之数组与矩阵

    本文是参考书籍《MATLAB R2020a完全自学一本通 》自己整理的一些笔记和一些练习,希望会给大家带来一些帮助。 目录 1、数组创建与运算 1.1数组的创建 1.2数组的运算 1.2.1 算术运算  1.2.2关系运算与逻辑运算  2、矩阵的构造与操作 2.1矩阵的构造 2.2矩阵的操作 2.3矩阵索引  2

    2024年02月07日
    浏览(34)
  • Matlab基础语法学习(2)矩阵和数组

    矩阵和数组 MATLAB 是“矩阵实验室”的缩写。虽然其他编程语言主要一次处理一个数字,但MATLAB®主要 设计用于整个矩阵和数组。 所有 MATLAB 变量都是多维 数组 ,无论数据类型如何。 矩阵 是通常用于线性代数的二维数组。 一、阵列创建 若要在一行中创建具有四个元素的数

    2024年01月19日
    浏览(30)
  • 【Matlab】最小二乘法拟合多项式

    在最近的电机项目中,有遇到有传感器数据并不线性的问题,然后想要用最小二乘法做个曲线拟合,反过来去校准不线性的传感器的数据,因此记录一下使用最小二乘法来拟合多项式的曲线的步骤。本篇从最小二乘法的原始公式入手编写M文件,目的是方便使用单片机实现,或

    2023年04月22日
    浏览(30)
  • 数值计算大作业:最小二乘法拟合(Matlab实现)

        作为研究生的入门课,数值计算的大作业算是所有研究生开学的重要编程作业。      我把最小二乘算法在MATLAB中整合成了一个M函数文件least square fitting.m,直线拟合函数lsf_linear.m,以及抛物线拟合函数lsf_parabolic.m。程序放在文章最后了,需要的同学自取。下文为作业详

    2024年02月07日
    浏览(29)
  • 定义一个5*5的矩阵(二维数组),赋上初值,通过调用函数实现:将数组中的最大值放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下依次从小到大存放),在主函数中输出变换后的数组。

    程序代码: #includestdio.h int min(int (*a)[5]) {    int i,j,*min,t;    min=a;    for(i=0;i5;i++)    for(j=0;j5;j++)    {    if(*(a[i]+j)*min)     min=(a[i]+j);        //交换地址     }     t=*min;     *min=*(a[0]+0);     *(a[0]+0)=t;         for(i=0;i5;i++)    for(j=0;j5;j++)    {    if(i==0j==0) continue; 

    2024年01月24日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包