2023Matlab初级教程- 第二章 Matlab 基础运算及函数、数据类型

2023-11-17

第二章 Matlab 基础运算及函数、数据类型



前言

本节将简要介绍下matlab中的基础计算、函数、数据类型。


一、基础运算

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
Matlab可以作为你的计算器使用,进行初级的数值计算,也可以进行求微积分、极限、符号计算等高级运算。
matlab的运算符包括 +-/x^

  • 加法运算,+,在命令行输入2022+1,点击回车,就会给你输出执行结果。
>> 2022+1

ans =

        2023

>> 

  • 减法运算,-,乘除法运算类似,下面就不一一演示了。

  • 除法运算,/

  • 乘法运算,x

  • 幂运算,要注意的是幂运算是这种形式  底数^幂次

>> 2024-1

ans =

        2023

幂次运算如下

>> 2^3

ans =

     8

二、基础函数

1.基础函数

基础函数包括三角函数,自然指数,开方函数,对数函数等

  • 三角函数,包括sin、cos、tan等常用三角函数,具体代码如下:

需要注意的是,在matlab里默认的是弧度值,当你想要计算sin(90°)的时候,需要用π转换,下面的例子就是计算90弧度值与90°的两个表达式

>> sin(90)

ans =

         0.893996663600558
>> sin(pi/2)>>     

ans =

     1
  • 开方函数,根号的使用以及n次根号的使用,有sqrt、power、nthroot三种方式,其中power可以用来求负数的n次根。

下面是求解根号9的结果与27的三次开方结果,-27的三次开方结果的代码:

>> sqrt(9)

ans =

     3

>> power(27,1/3)

ans =

     3

>> nthroot(27,3)

ans =

     3

>> power(-27,1/3)

ans =

                        1.5 +      2.59807621135332i
  • matlab自然指数e、圆周率π的表示方法

在matlab里,自然指数e为exp,但是当你想用的时候要用exp(1),代表e的1次方。圆周率π为pi:

>> exp(1)

ans =

          2.71828182845905

>> pi

ans =

          3.14159265358979
  • matlab中对数函数,对数函数的用法,包括log与ln。

在matlab里,log就是以自然指数为底的对数函数,也就是loge(x),下面是指数函数的用法,第一个例子为求解ln(e),第二个例子为求解log28:

>> log(exp(1))

ans =

     1

>> log2(8)

ans =

     3

2.练习

让我们来做一个练习,计算一下比较复杂的表达式:

1.求解esin(π)
2求解cos( ( 1 + 2 + 3 ) 3 5 \sqrt{\frac{(1+2+3)^3}{5}} 5(1+2+3)3 )

代码如下:

>> exp(sin(pi))

ans =


              1
              
>> cos(sqrt((1+2+3)^3/5))

ans =

         0.958390904529822

三、数据类型

本节介绍一下matlab中所使用的数据类型,包括布尔值、字符串、列表、元胞数组、结构体、函数。

3.1特殊变量

matlab里有一些特殊变量,包括如下几种:

  • ans  存储计算结果的变量,当你在敲下回车键的时候,计算的结果就存在默认的ans里,可以通过键入ans的方式显示计算结果。
  • i,j  复数变量,如果你想表示复数,那就要用到i和j了,例如5+3*i。
  • eps   无穷小,在matlab里用eps代表无穷小,实际数值是2.2204e-016
  • NaN  非数据(Not a Number),代表非数

3.2调用优先级

以下图中代表matlab的调用优先级,自定义变量>内置函数>子函数>私有函数。
在这里插入图片描述

常用命令:

clc 清空命令行窗口
clear 清空工作区所有变量
who 显示工作区有哪些变量

3.3.1数组

下面我们讲一下常规使用的数据类型,从最重要的数组类型开始。
matlab中的向量计算是要符合向量运算规则的,以下为向量运算示例:

>> a=[1 2 3 4]        定义1*4的行向量

a =

     1     2     3     4

>> b=[1;2;3;4]        定义4*1的列向量

b =

     1
     2
     3
     4

>> a*b    向量内积,结果为常数

ans =

    30

>> b*a   向量运算,结果为矩阵

ans =     

     1     2     3     4
     2     4     6     8
     3     6     9    12
     4     8    12    16

以下是matla中矩阵的索引方式,首先要注意的是,matlab中变量的位置索引是从1开始的,不像大多数编程语言的0开始。

>> A=[1 21 6;5 17 9;31 2 7]  定义一个3*3的矩阵A

A =

     1    21     6
     5    17     9
    31     2     7

>> A(8) 坐标索引,从上往下,从左往右,第8个元素的值

ans =

     9

>> A([1 3 5]) 坐标索引,从上往下,从左往右,第135个元素的值

ans =

     1    31    17

>> A([1 3;1 3])  坐标索引,结果为用新元素创建的新的矩阵。从上往下,从左往右,第1313个元素的值

ans =

     1    31
     1    31

>> A(3,2) 坐标索引,位置处于第3行,第2列的元素

ans =

     2

>> A([1 3],[1 3])
坐标索引,位置处于第1行,第1列的元素,第1行,第3列的元素,第3行,第1列的元素,第3行,第3列的元素

ans =

     1     6
    31     7

>> 

matlab的强大之处还在于它的切片索引,包括行切片与列切片。

>> A=[1 21 6;5 17 9;31 2 7]定义一个3*3的矩阵

A =

     1    21     6
     5    17     9
    31     2     7

>> A(1:2)对第一列的位置为12的元素切片。

ans =

     1     5

>> A(1,:)切片第一行元素,":"代表所有元素

ans =

     1    21     6

>> A(:,2)切片第一列元素,":"代表所有元素

ans =

    21
    17
     2

matlab的字符串索引,以下示例为把a字符串从第二个元素切到第八个元素,其中步长为2.

>> a='qwertyuio'

a =

    'qwertyuio'

>> a(2:2:8)

ans =

    'wryi'

>> s='a':2:'z'

s =

    'acegikmoqsuwy'

>> 

3.3.2结构体

matlab中有一种数据类型很强大,那就是结构体(struct),下面我们用定义一个学生体结构,来解释结构体数据类型的性质。

student.name='张三'
student.id=1
student.number=12345
student.grade=[78,56,42;99,80,55]
student

student = 

  包含以下字段的 struct:

      name: '张三'
        id: 1
    number: 12345
     grade: [2×3 double]

如上所示,我们定义了一个结构体数据叫student,其中包含了四个属性,分别是姓名,id,手机号,成绩。由上可见,我们很简单的就定义了包含多个属性的一个数据,并且属性的类型也可以是整数,字符串,数组等基础类型。结构体类型很强大,他也可以层层包含,也可以包含函数句柄等数据类型。

3.3.3元胞数组

元胞数组也是matlab中的一种基础类型,可以用{}定义一个元胞数组,与数组不同的地方是,元胞数组中的数据可以是不同类型的,我们用以下代码来演示

>> A(1,1)={[1 2 3;2 3 4;2 3 4]}

A =

  1×1 cell 数组

    {3×3 double}

>> A(1,2)={'Ane Smith'}

A =

  1×2 cell 数组

    {3×3 double}    {'Ane Smith'}

>> A(2,1)={1+6i}

A =

  2×2 cell 数组

    {3×3 double                  }    {'Ane Smith'}
    {[1 +                     6i]}    {0×0 double }

>> A(2,2)={1:1:10}

A =

  2×2 cell 数组

    {3×3 double                  }    {'Ane Smith'}
    {[1 +                     6i]}    {1×10 double}

>> A

A =

  2×2 cell 数组

    {3×3 double                  }    {'Ane Smith'}
    {[1 +                     6i]}    {1×10 double}

>> 

3.3.4布尔值

布尔值就是逻辑值,我们用示例来说明,布尔值的取值只有0跟1。

str =

    'abcd'

>> str=='a'

ans =

  1×4 logical 数组

   1   0   0   0

这里我介绍一个matlab中常用的字符串替换的方法,如下所示,如何找到字符串str中为‘a’的地方,然后把它替换成‘Z’,可以用下面的一句代码实现。

>> str='abcd'

str =

    'abcd'

>> str( str=='a')='Z'

str =

    'Zbcd'

好啦,以上就是matlab初级教程第二课要讲的内容,本文仅仅简单介绍了matlab里的基础运算与函数使用,不同的数据类型,要想使用的熟练还是要像第二节计算表达式那样多多练习哦。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2023Matlab初级教程- 第二章 Matlab 基础运算及函数、数据类型 的相关文章

  • 如何在 R 中导入 matlab 表

    我有一个matlab mat文件与表数据类型我想将其导入 R 中 我为此使用 readMat R 正在将其作为列表读取 之后有没有办法将列表转换为 R 中的数据帧或表格格式 当我使用as dataframe我收到以下错误 Error in
  • MATLAB:涉及大数的计算

    如何在 MATLAB 中执行涉及大量数字的计算 举一个简单的例子 任意精度计算器将显示 1 120 132 370 260 约为 1 56 但 MATLAB 无法执行此类计算 power 120 132 factorial 370 fact
  • 朴素分类器 matlab

    在 matlab 中测试朴素分类器时 即使我在相同的样本数据上进行训练和测试 我也会得到不同的结果 我想知道我的代码是否正确 是否有人可以帮助解释这是为什么 dimensionality reduction columns 6 U S V
  • 在Matlab中将矩阵中的元素i,j设置为i*j

    我想生成一个矩阵 其中 i j 元素等于 i j 其中 i j e g 0 2 3 2 0 6 3 6 0 到目前为止 我已经发现我可以使用这个索引矩阵访问非对角线元素 idx 1 eye 3 但我还没有弄清楚如何将矩阵单元的索引合并到计算
  • 优化数组压缩

    假设我有一个数组k 1 2 0 0 5 4 0 我可以按如下方式计算掩码m k gt 0 1 1 0 0 1 1 0 仅使用掩码 m 和以下操作 左移 右移 And Or 加 减 乘 我可以将 k 压缩为以下形式 1 2 5 4 以下是我目
  • MATLAB 图像锐化 - 使用(1-高斯低通滤波器)的高斯高通滤波器

    我试图通过设计高斯高通滤波器来锐化图像 我想利用高通滤波器相当于单位矩阵减去低通滤波器的事实来做到这一点 所以我执行了以下操作 image imread Question3 Data Cats jpg read image H 1 fspe
  • MATLAB 中元胞数组的左连接

    I ve 2 cellMATLAB 中的数组 例如 A jim 4 paul 5 sean 5 rose 1 第二个 B jim paul george bill sean rose 我想做一个 SQL 左连接 这样我就可以得到 B 中的所
  • 如何在Matlab脚本中将泰勒级数系数存储到数组中

    这个问题是在 m 脚本的上下文中 我知道如何获取函数的泰勒级数 但我没有看到任何命令允许将级数的系数存储到数组中 sym2poly似乎不起作用 如何将系数存储到数组中 例如这个函数 syms x f 1 x 2 4 x 9 我们怎样才能得到
  • Matlab 的快速 JSON 解析器

    您知道 Matlab 中有一个非常快速的 JSON 解析器吗 目前我正在使用JSONlab http www mathworks com matlabcentral fileexchange 33381 jsonlab a toolbox
  • 图像增强 - 从书写中清除给定图像

    我需要清理这张照片 删除 清理我 的字样并使其变亮 作为图像处理课程作业的一部分 我可能会使用 matlab 函数 ginput 来查找图像中的特定点 当然 在脚本中您应该对所需的坐标进行硬编码 您可以使用 conv2 fft2 ifft2
  • 如何使用Matlab提高PSD的分辨率

    我有音频信号 我用 Matlab 读取该信号 并使用 pwelch 获取其 PSD 这是我正在使用的代码 x Fs audioread audioFile wav x x 1 mono xPSD f pwelch x hamming 512
  • 查找数组中元素之间的平均差异的有效方法

    希望标题不会让人困惑 通过例子来展示很简单 我有一个像这样的行向量 1 5 6 我想找到每个元素之间的平均差异 此示例中的差异为 4 和 1 因此平均值为 2 5 这是一个小例子 我的行向量可能非常大 我是 MatLab 新手 那么有没有一
  • Matlab 编辑器不使用 emacs 快捷方式

    Is there some way I can make the matlab integrated editor not use emacs shortcut but use more normal shortcuts such that
  • 如何获取活动对象 MATLAB GUI 的句柄

    我正在尝试使用 MATLAB GUI 创建日历 我有两个Edit Text对象 edittext1 and edittext2 我想做这个 我把光标放在edittext1然后在日历中选择日期 它会进入文本字段edittext1 同样对于ed
  • 类方法的自定义代码完成?

    在 MATLAB 中 可以定义代码建议和完成 如标题为 的文档页面中所述 自定义代码建议和完成 https www mathworks com help matlab matlab prog customize code suggestio
  • 如何从绘图处理程序中绘图?

    我有绘图的处理程序或图形的处理程序 例子 h plot 1 0 2 10 xx get h xx DisplayName Annotation 1x1 handle Color 0 0 1 LineStyle LineWidth 0 500
  • python 正弦和余弦精度

    如何提高Python正弦和余弦精度 例如 我想使用以下代码 只需计算随机复向量 x 的 y cos acos x import numpy as np N 100000 x np zeros N 1j np zeros N for k in
  • 为什么 MATLAB 本机函数 cov(协方差矩阵计算)使用与我预期不同的除数?

    给定一个 M 维和 N 个样本的数据矩阵数据 例如 data randn N M 我可以计算协方差矩阵 data mu data ones N 1 mean data cov matrix data mu data mu N 如果我使用原生
  • 定义自定义 Mupad 程序的一般相对搜索路径

    假设我有一个 mupad 笔记本myMupadNotebook mn在路径上 C projectFolder ABC abc 它调用程序MyMupadProcedure mu它位于 C DEF GHI 现在我有一个 Matlab 脚本mai
  • 为什么 MATLAB 在打印大量 (.png) 图形时速度会变慢?

    我正在将大量数字打印为 png 文件 每个图都是数据矩阵中的一列图 我获取 png 文件并将它们串在一起形成动画 我的问题是 前几百张图像打印得很快 但创建每个新图形的时间却迅速增加 从前几百个 png 文件的约 0 2 秒到第 800 个

随机推荐

  • Dynamics 365 for Sales: Email Engagement

    今天我们来看看和电子邮件相关的新功能 Email Engagement 这个功能是用来跟踪电子邮件的反馈状态 非常适合做邮件营销的公司 在做邮件营销的时候 我们会对发出去的邮件进行反馈统计 例如 多少邮件被查看了 有多少邮件被回复了 有多少
  • 微信小程序:css弹出菜单+多语言切换功能

    如何用css写出弹出菜单效果以及它的使用 1 核心知识点 2 实现效果 3 注意点分解 4 代码源码 5 写在最后 1 核心知识点 1 弹出菜单 animation动画 transform属性 2 语言切换功能 点击事件函数catchtap
  • tar解压文件到指定目录出现Not found in archive

    使用tar解压文件到指定目录时出现Not found in archive是因为没有设置 C这个参数 create 解压后的文件只有 通过设置 C 注意要大写 这个参数 创建默认文件夹才能被成功解压 如需要把home目录下的 jdk 8u1
  • 企业微信自动打卡插件开发

    今日科技快讯 近日中国多家VPN供应商已收到了来自苹果公司的通知 通知主要告知这些供应商和开发者 他们的软件将从中国区App Store下架 对此苹果方面表示 工信部今年早些时候宣布 所有提供VPN服务的开发者必须获得政府的许可 我们被要求
  • rabbitmq 安装

    文章目录 RabbitMQ 安装 erlang安装 RabbitMQ安装 环境变量 管理界面 添加用户 配置允许远程访问的用户 未验证 RabbitMQ 安装 erlang安装 http www erlang org downloads R
  • 鼠标、键盘、窗口监听事件

    一 画笔paint 画笔 public class TestPaint public static void main String args new MyPaint loadFrame class MyPaint extends Fram
  • openwrt路由器(RP-LINK)安装python并设置开机启动程序

    由于项目需求 实际条件限制 需要在某台设备上运行一个python小程序 在工业机器人和云服务器之间实现信息转发的功能 因为机器人也需要通过路由器认证连接校园网 出于简化设备的考虑 不想每次跑程序还得开电脑 我决定尝试在路由器上运行这个程序
  • js时间戳与日期格式的转换

    1 将时间戳转换成日期格式 function timestampToTime timestamp 时间戳为10位需 1000 时间戳为13位不需乘1000 var date new Date timestamp 1000 var Y dat
  • 软件测试用例设计之因果图

    软件测试用例设计之因果图 自动贩卖机功能测试 若投入5角钱或1元钱的硬币 押下 橙汁 或 啤酒 的按钮 则相应的饮料就送出来 若售货机没有零钱找 则一个显示 零钱找完 的红灯亮 这时在投入1元硬币并押下按钮后 饮料不送出来而且1元硬币也退出
  • char* buf和char buf[64],定义两种字符串作为参数传递给函数的区别

    问题描述 最近在项目中遇到了一个让人疑惑的问题 有一个发送函数需要传递void 类型的参数 我定义了char buf abcdefg 然后将buf作为参数传递给了这个发送函数 但是函数返回值显示发送成功 但是另一端没有接收到数据 查找了好久
  • WEB服务器和应用服务器有什么区别

    author skate time 2009 12 04 俗的讲 Web服务器传送 serves 页面使浏览器可以浏览 然而应用程序服务器提供的是客户端应用程序可以调用 call 的方法 methods 确切一点 你可以说 Web服务器专门
  • 部署MES管理系统首先要解决什么问题

    随着制造业市场竞争的加剧 企业需要更加高效 灵活的生产运营 以提高产品质量和降低成本 在这种情况下 MES管理系统解决方案成为许多企业的选择 然而 在部署MES管理系统之前 必须首先解决一些关键问题 以确保系统的成功实施 本文将探讨部署ME
  • C和C++中的结构体

    解释一 C C 结构体的区别 C中的结构体和C 中结构体的不同之处 在C中的结构体只能自定义数据类型 结构体中不允许有函数 而C 中的结构体可以加入成员函数 C 中的结构体和类的异同 一 相同之处 结构体中可以包含函数 也可以定义publi
  • 基于Rancher实现kubernetes集群管理

    基于Rancher实现kubernetes集群管理 1 Rancher介绍 2 Rancher部署 添加kubernetes集群 3 Rancher简单操作 1 Rancher介绍 Rancher可以通过图形化操作的方式管理kubernet
  • JAVA利用HttpClient进行POST请求(HTTPS)

    目前 要为另一个项目提供接口 接口是用HTTP URL实现的 最初的想法是另一个项目用JQuery post进行请求 但是 很可能另一个项目是部署在别的机器上 那么就存在跨域问题 而JQuery的post请求是不允许跨域的 这时 就只能够用
  • 逆水寒跑商时服务器维护,逆水寒跑商路线推荐 合适的路线让你事半功倍

    逆水寒跑商路线推荐 帮会跑商可以赚到大量的财富 因为跑商比较浪费时间也比较危险 所以我们需要研究一条比较合理的路线 这样对于各位镖师来说才是最省时省力的方法 汴京 菊花酒 杭州 贸易信息 木板年画 宋辽边境 磁州 3000以下 贸易信息赚更
  • Linux学习笔记(九) -- 利用Code::Blocks建立C++静态链接库

    1 测试平台 测试平台 Linux版本 Ubuntu 18 04 LTS Code Blocks版本 16 01 2 操作步骤 2 1 启动Code Blocks 2 2 新建静态链接库工程 1 选择 File 菜单中的 New Proje
  • 总结:nn.Module的children()与modules()方法、如何获取网络的某些层

    一 nn Module的children 方法与modules 方法的区别 children 与modules 都是返回网络模型里的组成元素 但是children 返回的是最外层的元素 modules 返回的是所有的元素 包括不同级别的子元
  • osg学习(三十九)DisplaySettings

    DisplaySettings是osg的全局单实例变量 类似osg的Registry 主要记录窗口的一些显示设置 比如窗口尺寸 多重纹理采样数 着色器设置等 osg在创建窗口时会从该变量中读取信息 这个变量中的信息可以通过命令行输入也可以通
  • 2023Matlab初级教程- 第二章 Matlab 基础运算及函数、数据类型

    第二章 Matlab 基础运算及函数 数据类型 文章目录 第二章 Matlab 基础运算及函数 数据类型 前言 一 基础运算 二 基础函数 1 基础函数 2 练习 三 数据类型 3 1特殊变量 3 2调用优先级 3 3 1数组 3 3 2结