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

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

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

2023-06-02 23:47| 来源: 网络整理| 查看: 265

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

文章目录 前言一、矩阵相乘二、矩阵生成1.直接输入2.单位矩阵3.全零矩阵2.全一矩阵2.随机矩阵 三、矩阵操作四、矩阵/数组索引五、最大最小运算符六、矩阵求和-sum函数七、语句过长换行书写八、逻辑运算符(与或非、异或、"&&"与"&"、"||"与"|")九、log函数在MATLAB中的表达十、Matlab中的Inf和NaN的含义十一、同时给多个变量或矩阵赋值十二、MATLAB取整与取余函数总结

前言

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

一、矩阵相乘

线性代数的两个矩阵相乘:用符号 “ * ” 例如A*B得到A与B的矩阵相乘,A的列数与B的行数要一致。 矩阵对应元素相乘:用符号点乘 " . * " A 点乘B得到A矩阵与B矩阵对应元素相乘的结果。 代码示例: 在这里插入图片描述

二、矩阵生成 1.直接输入

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

代码如下(示例): 在这里插入图片描述

2.单位矩阵

语法:

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

代码如下(示例):

代码如下(示例): 在这里插入图片描述

3.全零矩阵

语法:

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

代码如下(示例):

在这里插入图片描述

2.全一矩阵

语法:

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

代码如下(示例): 在这里插入图片描述

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的矩阵

代码如下(示例): 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

三、矩阵操作

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

代码如下(示例): 在这里插入图片描述

四、矩阵/数组索引

直接看图 代码如下(示例): 在这里插入图片描述

五、最大最小运算符

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

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

代码如下(示例): 在这里插入图片描述

六、矩阵求和-sum函数

1.向量求和 *语法:

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

代码如下(示例): 在这里插入图片描述 在这里插入图片描述 2.矩阵按列求和 *语法: sum(需要按列求和的矩阵)

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

代码如下(示例): 在这里插入图片描述 3.矩阵按行求和 *语法: sum(需要按列求和的矩阵,2)

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

代码如下(示例): 在这里插入图片描述

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

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

代码如下(示例): 在这里插入图片描述

七、语句过长换行书写

编写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

代码如下(示例): 在这里插入图片描述

八、逻辑运算符(与或非、异或、“&&“与”&”、“||“与”|”) 符号含义&与竖线或~非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的含义,语句过长用连接符换行语句、逻辑运算符以及区别



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3