Matlab基础语法学习(2)矩阵和数组

本文详细介绍了MATLAB中矩阵和数组的基础概念,包括创建、操作(如加法、转置、矩阵乘法)、串联数组、复数处理、索引选取以及工作区变量的管理。
摘要由CSDN通过智能技术生成

矩阵和数组

MATLAB是“矩阵实验室”的缩写。虽然其他编程语言主要一次处理一个数字,但MATLAB®主要设计用于整个矩阵和数组。

所有 MATLAB 变量都是多维数组,无论数据类型如何。矩阵是通常用于线性代数的二维数组。

一、阵列创建

若要在一行中创建具有四个元素的数组,请用逗号或空格分隔这些元素。

a = [1 2 3 4]

a = 1×4

     1     2     3     4

这种类型的数组是行向量

若要创建具有多行的矩阵,请用分号分隔这些行。

a = [1 3 5; 2 4 6; 7 8 10]

a = 3×3

     1     3     5

     2     4     6

     7     8    10

如下

且发现如果不输入不会自动产生0,会发生错误

特别的,创建矩阵的另一种方法是使用函数,例如 、 、 或 。例如,创建一个 5 x 1 的零列向量。

z = zeros(5,1)

z = 5×1

     0

     0

     0

     0

     0

可知,此函数的作用为创建任意的小的0矩阵

二、矩阵和数组操作

MATLAB 允许您使用单个算术运算符或函数处理矩阵中的所有值。

a + 10

ans = 3×3

    11    13    15

    12    14    16

    17    18    20

sin(a)

ans = 3×3

    0.8415    0.1411   -0.9589

    0.9093   -0.7568   -0.2794

0.6570    0.9894   -0.5440

要转置矩阵,请使用单引号 :'

a'

ans = 3×3

     1     2     7

     3     4     8

     5     6    10

您可以使用运算符执行标准矩阵乘法,该乘法计算行和列之间的内部乘积。例如,确认矩阵乘以其逆矩阵返回单位矩阵:*

矩阵整体的乘法

p = a*inv(a)//矩阵乘逆矩阵得到的单位矩阵

p = 3×3

    1.0000    0.0000   -0.0000

         0    1.0000   -0.0000

         0    0.0000    1.0000

请注意,这不是整数值的矩阵。MATLAB 将数字存储为浮点值,并且算术运算对实际值与其浮点表示之间的微小差异很敏感。您可以使用以下命令显示更多十进制数字:format

format long

p = a*inv(a)

p = 3×3

   0.999999999999996   0.000000000000007  -0.000000000000002

                   0   1.000000000000000  -0.000000000000003

                   0   0.000000000000014   0.999999999999995

使用

format short

format仅影响数字的显示,而不影响 MATLAB 计算或保存数字的方式。

如下

要执行按元素乘法而不是矩阵乘法,请使用运算符:.*

p = a.*a

p = 3×3

     1     9    25

     4    16    36

    49    64   100

用于乘法、除法和幂次幂的矩阵运算符都有一个相应的数组运算符,该运算符按元素操作。例如,将 的每个元素提高到第三次幂:a

a.^3

ans = 3×3

           1          27         125

           8          64         216

         343         512        1000

如下

四、串联(合并矩阵)

串联是连接数组以生成较大数组的过程。实际上,您是通过连接其各个元素来创建第一个数组的。方括号对是串联运算符。[]

A = [a,a]

A = 3×6

     1     3     5     1     3     5

     2     4     6     2     4     6

     7     8    10     7     8    10

使用逗号将数组彼此相邻连接起来称为水平串联。每个数组必须具有相同的行数。同样,当数组具有相同数量的列时,可以使用分号垂直连接。

A = [a; a]

A = 6×3

     1     3     5

     2     4     6

     7     8    10

     1     3     5

     2     4     6

     7     8    10

 

五、复数

复数有实部和虚部,其中虚部单位是 的平方根。-1

sqrt(-1)

ans = 0.0000 + 1.0000i

要表示复数的虚部,请使用ij

c = [3+4i, 4+3j; -i, 10j]

c = 2×2 complex

   3.0000 + 4.0000i   4.0000 + 3.0000i

   0.0000 - 1.0000i   0.0000 +10.0000i

事实证明逗号和分号都能分割行

六、数组索引

试试这个例子复制命令复制代码

MATLAB® 中的每个变量都是一个可以容纳许多数字的数组。如果要访问数组的选定元素,请使用索引。

例如,考虑 4 x 4 矩阵:A

A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]

A = 4×4

     1     2     3     4

     5     6     7     8

     9    10    11    12

    13    14    15    16

有两种方法可以引用数组中的特定元素。最常见的方法是指定行和列下标,例如

A(4,2)

ans = 14

注:不太常见但有时有用的是使用单个下标,该下标按顺序遍历每列:

A(8)//第四行为13 则第八行为14

ans = 14

使用单个下标来引用数组中的特定元素称为线性索引

注意:如果尝试引用赋值语句右侧数组外部的元素,MATLAB 会引发错误。

test = A(4,5)

Index in position 2 exceeds array bounds (must not exceed 4).

但是,在赋值语句的左侧,可以指定当前尺寸之外的元素。数组的大小会增加以容纳新来者。

A(4,5) = 17//此时矩阵已经创建,故不输入可以自动显示0

A = 4×5

     1     2     3     4     0

     5     6     7     8     0

     9    10    11    12     0

    13    14    15    16    17

要引用数组的多个元素,请使用冒号运算符,它允许您指定格式的范围。例如,列出前三行和第二列中的元素start:end

A(1:3,2) //一到三行的所有第二列元素

ans = 3×1

     2

     6

    10

冒号本身(不带开始值或结束值)指定该维度中的所有元素。例如,选择 以下行的第三行中的所有列A

A(3,:)//仅仅第三行的所有列

ans = 1×5

     9    10    11    12     0

冒号运算符还允许您使用更通用的形式创建等间距的值向量start:step:end

B = 0:10:100

B = 1×11

     0    10    20    30    40    50    60    70    80    90   100

如果省略中间步骤,如中所示,MATLAB 将使用缺省步骤值 。start:end1

七、工作区变量

工作区包含您在 MATLAB 中创建的变量,或从数据文件或其他程序导入 MATLAB 的变量。例如,这些语句在工作区中创建变量。®AB

A = magic(4);

B = rand(3,5,2);

您可以使用 查看工作区的内容。whos

whos

  Name      Size             Bytes  Class     Attributes

  A         4x4                128  double              

  B         3x5x2              240  double              

这些变量还会显示在桌面上的“工作区”窗格中。

工作区变量在退出 MATLAB 后不会保留。 保存您的数据,以便以后与命令一起使用,save

save myfile.mat

“保存”会将当前工作文件夹中的工作空间保留在扩展名为 MAT 文件(称为 MAT 文件)的压缩文件中。.mat

若要从工作区中清除所有变量,请使用该命令。Clear

删除单个变量只需要clear b

使用 将数据从 MAT 文件恢复到工作区。load

load myfile.mat

如图,先清除工作区所有变量之后仍然可以从myfile文件中恢复

  • 24
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

什么都不会…

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

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

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

打赏作者

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

抵扣说明:

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

余额充值