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

文章目录

  • 前言
  • 一、矩阵相乘
  • 二、矩阵生成
    • 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的含义,语句过长用连接符换行语句、逻辑运算符以及区别

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

  1. matlab矩阵乘法结果出错,为啥矩阵乘法显示矩阵乘法维度不正确?是什么原因?...

    EDA365欢迎您登录! 您需要 登录 才可以下载或查看,没有帐号?注册 x 为啥矩阵乘法显示矩阵乘法维度不正确?是什么原因?代码如下: 7 ^$ @: y: ^, w) ^1 S # `/ S: I ...

  2. lu分解法matlab_MIT 18.065—机器学习中的矩阵方法02 矩阵乘法与矩阵分解

    数据分析.信号处理和机器学习中的矩阵方法 第02讲 矩阵乘法与矩阵分解 新MIT 线性代数|机器学习(中英机翻字幕)18.065 by Gilbert Strang_哔哩哔哩 (゜-゜)つロ 干杯~- ...

  3. 二维矩阵乘法、矩阵转置、 矩阵与向量乘法(java实现)

    二维矩阵乘法.矩阵转置. 矩阵与向量乘法(java实现) 相关代码如下: package algorithms; //矩阵库 public class Matrisx { /***向量点相乘 doub ...

  4. MATLAB基础操作--命令窗口

    MATLAB基础操作–命令窗口 常用的赋值运算符-'='对变量进行赋值 x=9-5 x = 4 x-8=9 x-8=9 ↑ 错误: '=' 运算符的使用不正确.要为变量赋值,请使用 '='.要比较值是 ...

  5. MATLAB基础学习篇:#3 矩阵和数组

    目录 前言 3.1 矩阵的创建.串联和扩展 3.1.1 矩阵的创建 1. 手动创建 2. 函数创建 3.1.2 矩阵的串联 1. 手动串联 2. 函数串联 3.1.3 矩阵的扩展 3.2 数组的索引 ...

  6. mysql 矩阵乘法_矩阵乘法高级操作

    对于矩阵乘法的一些操作 我们 其实 大部分是 多追加一个系数 或者和 其他算法连在一起. 至于核心无非就是 先列出dp 方程再优化 或者 直接 对题目进行建模 构建矩阵. 至于矩阵乘法的正确性 形状的 ...

  7. MATLAB基础(二):矩阵与阵列

    1.数值变量  1.1 命名规则 ①变量名第一个字母必须是英文字母. ②变量名.函数名对字母的大小写是敏感的.如myVar与myvar表示两个不同的变量. ③变量名可以包含英文字母.下划线和数字. ...

  8. 矩阵的基础知识回顾:矩阵乘法,矩阵的逆,伴随矩阵,矩阵的转置,行列式,相似矩阵,实对称矩阵

    Agenda 1. 矩阵matrix 1.1 矩阵运算matrix operations 1.1.1 矩阵乘法matrix multiplication 1.1.1.1 简化矩阵乘法(facilita ...

  9. Matlab基础操作学习笔记

    文章目录 一.数据类型 1.常见的MatLab数据类型: 2.数据类型转换: 二.函数 1.脚本 2.函数 三.矩阵与数组 1.矩阵 2.数组 四.运算符 1.算数运算符 2.关系运算符 3.逻辑运算 ...

最新文章

  1. NopCommerce架构分析-依赖注入
  2. weex运行ios报错:/bin/sh: pod: command not found
  3. sap 与 sap business one 和国内软件的比较
  4. GET与POST可传递的最大值到底是多少?
  5. Android旋转切换条目,Android:当我添加动态新的ListView条目时,ListView中的旋转器会丢失它们的值...
  6. scala运行的方式
  7. 2019牛客暑期多校训练营(第十场)C - Gifted Composer (二分+哈希)
  8. [LintCode] Reverse Integer
  9. 在Activity不可见时暂停WebView的语音播放,可见时继续播放之前的语音
  10. 临时生成oracle快照,oracle 11g dataguard 使用快照实现临时读写
  11. java设计模式之备忘_[译]Java 设计模式之备忘录
  12. idea重写接口没有@override_接口和抽象有什么区别?
  13. 2022年软考信息安全工程师备考历年真题汇总
  14. 图画日记怎么画_小学生绘画日记
  15. 《关键对话》:高效沟通与数据分析的意义不言而喻
  16. 智慧城市每年商机超2万亿美元;中德嘉宾共话智慧城市建设 | 智慧城市周报
  17. Hibernate 参数查询
  18. android 检查otg,怎么查看手机是否支持otg
  19. html首页我的待办,我的待办.html
  20. 数据安全--15--去标识化技术

热门文章

  1. 中集集团飞瞳全球港口航运人工智能领军企业中集飞瞳,成熟港航人工智能AI为港口船公司大幅提效降本,新一代智慧港口智慧船公司解决方案
  2. python定时发送邮件的条件_python实现定时发送邮件
  3. 【安全知识分享】电气安全意识培训.pptx(附下载)
  4. Android两个Activity之间的接口回调
  5. Linux一条命令多个机器执行,Linux 配置HA软件后,如果该机器上有多个IQServer如何执行切换命令?...
  6. [SpaceVim] 安装SpaceVim
  7. 此应用专为旧版本打造
  8. 职场、书、技术、球友
  9. 文斗系统的服务器IP地址,引爆回合策略对战《儒道至圣》 文斗私斗
  10. 再见了VMware、Docker,这个免费开源的容器编排工具不香吗?