Matlab(基本操作与矩阵输入)

news2024/11/25 20:33:20

     

目录

1.Matlab视窗详读

2.基本操作与矩阵输入

2.1 运算符的优先级

2.2 初等数学函数

2.3 嵌入函数

2.4 特殊变量和常量

2.5 Matlab的优先级调用

2.6 数字显示格式长

2.7 命令行中端

2.8 部分函数

2.9 向量和矩阵

2.10 数组索引

2.11 串联矩阵

2.12 生成数值序列

2.13 矩阵相关的函数

       作为一名数学专业的学生,掌握Matlab也是非常重要的,接下来分享在学习Matlab中记录的笔记供大家分享!!!

     在这里可能没有接触过Matlab的同学并不了解这是什么东西,我们首先对Matlab做一下简单的科普:Matlab是一种高级的计算机编程语言和环境,用于数值计算、数据可视化和算法开发,它具有强大的矩阵操作能力和丰富的数值计算函数库,适用于科学计算、工程分析、数据处理和机器学习等领域。Matlab还提供了一套图形用户界面工具,方便用户进行交互的数据分析和可视化操作。

Matlab帮助文档

1.Matlab视窗详读

2.基本操作与矩阵输入

2.1 运算符的优先级

  1. 括号()
  2. 幂  ^
  3. 乘除 * /
  4. 加减 + -

2.2 初等数学函数

  • 基本算术
加法
+添加数字,追加字符串
sum数组元素总和
cumsum累加和
movsum移动总和

案例:

减法
-减法
diff差分和近似导数

 案例:

乘法
.*乘法
*矩阵乘法
prod数组元素的乘积
cumprod累积乘积

案例:

*

 .*

 prod:

​​​​​​​除法
.\数组右除
.\数组左除
/求解xA=B
\求解Ax=B

 在矩阵中左除(乘)和右除(乘)是有区别的,不了解的同学可自行查看资料

 原数组

 ./:

 .\:

 /:

 \:

  •  模除法和舍入
mod除后的余数(取模运算)
rem除后的余数
idivide带有舍入选项的整数
ceil向正无穷舍入
fix向零舍入
floor向负无穷舍入
round舍入至最近的小数或整数

 案例:

mod:

%b = mod(a,m) 返回 a 除以 m 后的余数,其中 a 是被除数,m 是除数。此函数通常称为取模运算,表达式为 b = a - m.*floor(a./m)。mod 函数遵从 mod(a,0) 返回 a 的约定。
b=mod(a,m)

 rem:

%r = rem(a,b) 返回 a 除以 b 后的余数,其中 a 是被除数,b 是除数。此函数通常称为求余运算,表达式为 r = a - b.*fix(a./b)。rem 函数遵从 rem(a,0) 是 NaN 的约定。
r=rem(a,b)

ceil:

  fix:

 floor:

 round:

  • 指数和对数
exp指数
log自然对数
log10常用对数(以10为底)
sqrt平方根

2.3 嵌入函数

2.4 特殊变量和常量

  • ans :结果
  • i,j  :复数
  0.0000 + 1.0000i
  • Inf   :无穷大
Inf
  • eps : 2.2204e-16
2.2204e-16
  • NaN:not a number
NaN
  • pi    : π
  3.1416

我们也可以通过iskeyword快速查看文档哪些是特殊的变量以及常量

2.5 Matlab的优先级调用

2.6 数字显示格式长

数字格式
shortShort,结果小数点后有4位的短的固定十进制格式
longLong,固定的十进制格式,双值在小数点后15位,单值在小数点后7位
shortE小数点后有4位数的短科学计数法
longE长科学计数法,双值在小数点后15位,单值在小数点后7位
bank小数点后有两位的货币格式
hex二进制双精度数的十六进制表示
rat小整数的比率,将数值转成有理数、分数

案例:

>> format long
>> pi

ans =

   3.141592653589793

>> format short
>> pi

ans =

    3.1416

>> format shortE
>> pi

ans =

   3.1416e+00

>> format longE
>> pi

ans =

     3.141592653589793e+00

>> format bank
>> pi

ans =

          3.14

>> format hex
>> pi

ans =

   400921fb54442d18

>> format rat
>> pi

ans =

     355/113  

2.7 命令行中端

我们输入几行命令,看有;和无;有什么区别:

>> A=[1 2 3];
>> 
>> B=[2 2 2]

B =

       2              2              2  

简单来说,;在命令的末尾会抑制终端的输出

2.8 部分函数

常用函数
clc清除命令窗口显示
clear删除工作区中所有的变量,从工作区中删除项目、释放系统内存
who列出工作区中的变量
whos列出工作区中的变量及大小和类型
>> who

您的变量为:

A    B    C    D    ans  b    cos  
>> whos
  Name      Size            Bytes  Class     Attributes

  A         1x3                24  double              
  B         1x3                24  double              
  C         1x2                16  int64               
  D         1x2                16  int64               
  ans       1x1                 8  double              
  b         1x1                 8  double              
  cos       1x11               22  char      

2.9 向量和矩阵

一些特殊的矩阵:

  • linspace():生成线性间距向量
  • eye():单位矩阵
  • zeros():创建全零矩阵
  • diag():创建对角矩阵或获取矩阵的对角元素
  • rand():均匀分布随机数
  • magic():魔方矩阵
  • ones():创建全一矩阵
>> A=[1 2 3 4]

A =

       1              2              3              4       

>> B=[1;2;3;4]

B =

       1       
       2       
       3       
       4       

>> C=[1 2;3 4]

C =

       1              2       
       3              4     
>> D=rand(3,4)%随机矩阵

D =

     664/815        717/785        408/1465       687/712   
    1298/1433      1493/2361      1324/2421       589/3737  
     751/5914       694/7115       338/353       6271/6461  

>> E=ones(3,4)%单位矩阵

E =

       1              1              1              1       
       1              1              1              1       
       1              1              1              1  
>> F=eye(3,4)%对角线为1的矩阵

F =

       1              0              0              0       
       0              1              0              0       
       0              0              1              0 
>> G=magic(5)%魔方矩阵 行、列、对角线乘积相同的矩阵

G =

      17             24              1              8             15       
      23              5              7             14             16       
       4              6             13             20             22       
      10             12             19             21              3       
      11             18             25              2              9   
>> zeros(3,4)%零矩阵

ans =

       0              0              0              0       
       0              0              0              0       
       0              0              0              0       

2.10 数组索引


G =

       8              1              6       
       3              5              7       
       4              9              2       

>> G(7)%数组中第7个元素

ans =

       6       

>> G([1 4 9])%数组中第1、4、9个元素

ans =

       8              1              2       

>> G([2 3;2 3])%数组中第2、3个元素和2、3个元素组成的矩阵

ans =

       3              4       
       3              4       

>> G([2 3],[2 3])%第2、3行与第2、3列的交集组成的矩阵

ans =

       5              7       
       9              2      

 假如若要修改数组中的元素,可以用:


>> G(1,3)=10%第1行第3列的元素修改为10

G =

       8              1             10       
       3              5              7       
       4              9              2    

如果要输出某一行或者是某一列,则:

>> G(1,:)%输出第一行的全部元素

ans =

       8              1             10       

>> G(:,1)%输出第一列的全部元素

ans =

       8       
       3       
       4       

2.11 串联矩阵

我们可以使用方括号来追加现有的矩阵,这种创建矩阵的方式称为串联,例:

如果要合并为一行的话:

>> A=ones(1,3)

A =

       1              1              1 
>> B=rand(1,3)

B =

     581/607        614/1265      1142/1427  

>> C=[A B]

C =

       1              1              1            581/607        614/1265      1142/1427  

如果要合并为两行的话:

>> C=[A;B]

C =

       1              1              1       
     581/607        614/1265      1142/1427  

要串联多个矩阵的时候,它们必须要有兼容的大小,水平串联时,它们的行数必须相同,垂直串联时,它们的列数必须相同

我们在串联的时候也可以使用函数horzcat()进行操作:

水平串联

>> D=horzcat(A,B)

D =

       1              1              1            581/607        614/1265      1142/1427  

垂直串联

>> D=vertcat(A,B)

D =

       1              1              1       
     581/607        614/1265      1142/1427  

2.12 生成数值序列

  • 创建一个行向量,其元素是从1到10的整数
A=1:10

>> A=1:10

A =

  列 1 至 7

       1              2              3              4              5              6              7       

  列 8 至 10

       8              9             10     
  • 可以用冒号运算符创建在任何范围内以1为增量的数字序列

>> A=1:-2:-8

A =

       1             -1             -3             -5             -7     
>> 1:-2:8%起点和终点必须合法

ans =

  空的 1×0 double 行向量

2.13 矩阵相关的函数

>> A=[2 5 6;1 5 6;9 2 1]

A =

       2              5              6       
       1              5              6       
       9              2              1
  • max(A)
%A为向量:返回的是A的最大值
%A为矩阵:返回的是每列的最大值
>> max(A)

ans =

       9              5              6     
  • max(max(A))
%返回的是A中的最大值
>> max(max(A))

ans =

       9       
  • sum(A)
%返回每列的元素之和
>> sum(A)

ans =

      12             12             13       
%返回矩阵的所有元素之和
>> sum(sum(A))

ans =

      37  
  • sort(A)
%每列进行排序(从小到大)
>> sort(A)

ans =

       1              2              1       
       2              5              6       
       9              5              6    
  • sortrows(A)
%对矩阵行或者表进行排序,基于第一列中的元素按升序对矩阵进行排序
>> sortrows(A)

ans =

       1              5              6       
       2              5              6       
       9              2              1   
  • size(A)
%得出该矩阵时几行几列
>> size(A)

ans =

       3              3       
  • find(A)
%查找非零元素的索引和值
>> find(A)

ans =

       1       
       2       
       3       
       4       
       5       
       6       
       7       
       8       
       9    
%如果在数组中有多个元素符合,则输出   

>> find(A==5)

ans =

       4       
       5     
%对于在数组中不存在的元素,直接输出空向量  

>> find(A==11)

ans =

  空的 0×1 double 列向量

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/941241.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

合宙Air724UG LuatOS-Air LVGL API控件--进度条 (Bar)

进度条 (Bar) Bar 是进度条,可以用来显示数值,加载进度。 示例代码 – 创建进度条 bar lvgl.bar_create(lvgl.scr_act(), nil) – 设置尺寸 lvgl.obj_set_size(bar, 200, 20); – 设置位置居中 lvgl.obj_align(bar, NULL, lvgl.ALIGN_CENTER, 0, 0) …

9.4 集成功率放大电路

OTL、OCL 和 BTL 电路均有各种不同输出功率和不同电压增益的集成电路。应当注意,在使用 OTL 电路时,需外接输出电容。为了改善频率特性,减小非线性失真,很多电路内部还引入深度负反馈。这里以低频功放为例。 一、集成功率放大电路…

vue项目,如何修改Element-Plus等UI组件库的样式,三种方式搞定!!!

前言 我们在学习和使用组件库构建页面的时候,时常会遇到这样的问题。 即,尽管组件库已经提供了较多的功能,来帮助我们构建自定义的效果,但有时仍不能使我们满意。 这个时候我们就不得不修改UI库的样式,来达到想要的状…

修改类属性后出现错误 Filtered request failed. 和 unable to find class for code 253

问题描述: 类增加字段后项目无法启动。 javax.servlet.ServletException: Filtered request failed. Caused by: java.lang.RuntimeException: unable to find class for code 253 原因分析: 由于修改的User类是设置了序列化的,在未修改…

RISC-V 中国峰会 | OpenMPL引人注目,RISC-V Summit China 2023圆满落幕

RISC-V中国峰会圆满落幕 2023年8月25日,为期三天的RISC-V中国峰会(RISC-V Summit China 2023)圆满落幕。本届峰会以“RISC-V生态共建”为主题,结合当下全球新形势,把握全球新时机,呈现RISC-V全球新观点、新…

【C语言进阶(8)】自定义数据类型1:结构体

文章目录 前言Ⅰ 结构体的声明和定义⒈结构体声明⒉结构体定义⒊特殊的声明 Ⅱ 结构体的自引用Ⅲ 结构体初始化Ⅳ 访问结构体成员Ⅴ 结构体内存对齐⒈结构体内存对齐规则⒉分析结构体大小⒊嵌套结构体内存大小⒋内存对齐存在的原因 Ⅵ 修改默认对齐数Ⅶ 结构体传参 前言 C 语言…

嵌入式系统存储体系

一、存储系统概述 主要分为三种:高速缓存(cache)、主存和外存。 二、高速缓存Cache 高速缓冲存储器中存放的是当前使用得最多得程序代码和数据,即主存中部分内容的副本,其本身无自己的地址空间。在嵌入式系统中Cac…

视频怎么变成动态gif图?一个方法轻松转换

怎么将视频转换成gif动态图片呢?大家在日常看电影、电视剧,刷短视频的时候想要将其做成gif表情包时,应该如何操作呢?这时候,给大家分享一款操作简单无需下载的视频gif转换(https://www.gif.cn/)…

ubuntu22安装和部署Kettle8.2

前提 kettle是纯java编写的etl开源工具,目前kettle7和kettle8都需要java8或者以上才能正常运行。所以运行kettle前先检查java环境是否正确配置,java版本是否是8或者以上。 kettle安装 1、创建kettle目录,并将kettle的zip包解压到kettle目…

Linux 系统运维工具之 OpenLMI

一、前要 OpenLMI(全称 Open Linux Management Infrastructure)即开放式的 Linux 管理基础架构。OpenLMI 是一个开源项目,用于管理 Linux 系统管理的通用基础架构。它建立在现有工具基础上,充当抽象层,以便向系统管理…

CTF-XXE(持续更新,欢迎分享更多相关知识点的题目)

知识 实例 BUU [PHP]XXE 进来看到 然后一起看 Write BUU XXE COURSE 1 进来看到 一起看 write NSS [NCTF2019]Fake XML cookbook 反正是XXE 直接整 write [NCTF 2019]True XML cookbook 不整花里胡哨,解题在最下面 write 与博主不同,我通过…

【C++多线程】C++11互斥锁和条件变量实现生产者消费者模型

先看几个问题,第三个问题可以先看代码然后再理解 Q1:临界区在哪 A1: 队列中元素在「生产者生产(push)」和「消费者消费(pop)」时就是临界区 Q2:同步操作在哪 A2: 很显然,队列只有…

在kaggle中用GPU使用CGAN生成指定mnist手写数字

文章目录 1项目介绍2参考文章3代码的实现过程及对代码的详细解析独热编码定义生成器定义判别器打印我们的引导信息模型训练迭代过程中生成的图片损失函数的变化 4总结5 模型相关的文件 1项目介绍 在GAN的基础上进行有条件的引导生成图片cgan 2参考文章 GAN实战之Pytorch 使用…

android framework之Applicataion启动流程分析

Application启动流程分析 启动方式一:通过Launcher启动app 启动方式二:在某一个app里启动第二个app的Activity. 以上两种方式均可触发app进程的启动。但无论哪种方式,最终通过通过调用AMS的startActivity()来启动application的。 根据上图…

家政服务行业搭建小程序的实用技巧分享

随着移动互联网的发展,小程序成为了各行各业的新宠。对于家政服务行业来说,搭建一个小程序商城可以极大地提升服务的便捷性和用户体验,同时也能提高企业的竞争力。本文将分享家政服务行业搭建小程序的实用技巧,帮助您顺利创建属于…

利用深度蛋白质序列嵌入方法通过 Siamese neural network 对 virus-host PPIs 进行精准预测【Patterns,2022】

研究背景: 病毒感染可以导致多种组织特异性损伤,所以 virus-host PPIs 的预测有助于新的治疗方法的研究;目前已有的一些 virus-host PPIs 鉴定或预测方法效果有限(传统实验方法费时费力、计算方法要么基于蛋白结构或基因&#xff…

SAP-FI-会计凭字段替代OBBH

会计凭证替代OBBH 业务:文本必须等于某个字段的值,例如凭证日期 关闭确认功能,输入OBBH 双击“替代”进入功能配置,或者用GGB1,用GGB1的功能更多。 点击行项目,点击“新建替换”保存 点击新建YXL7331,点击…

删除命名空间一直处于Terminating

删除命名空间一直处于Terminating 通常删除命名空间或者其他资源一直处于Terminating状态,是由于资源调度到的节点处于NotReady状态,需要将节点重新加入到集群使其状态变为Ready状态才能解决问题,当node重新加入处于Ready状态后,…

系统报错msvcr120.dll丢失一键修复教程,快速修复dll报错问题

今天,我将和大家探讨一个常见的问题:系统报错msvcr120.dll丢失。这个问题相信很多网友都遇到过,尤其是在使用一些较老的软件或者游戏时,很容易出现这个错误。那么,如何解决这个问题呢?下面,我将…

Matlab(结构化程式和自定义函数)

目录 1.脚本编辑器 2.脚本流 2.1 控制流 2.2 关系(逻辑)操作符 3.脚本与函数 1.脚本编辑器 Matlab的命名规则: 常用功能: 智能缩进: 在写代码的时候,有的时候代码看起来并不是那么美观(可读性…