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

本文是Matlab数模初级教程的第二章,详细介绍了Matlab的基础运算,包括加减乘除、三角函数和对数函数等;讲解了基础函数的使用,如exp、sqrt和log;并探讨了数据类型,如特殊变量ans、i/j、eps、NaN,以及数组、结构体、元胞数组和布尔值的概念和操作实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第二章 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里的基础运算与函数使用,不同的数据类型,要想使用的熟练还是要像第二节计算表达式那样多多练习哦。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐以礼

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值