MATLAB学习笔记(4)

128 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第25天,点击查看活动详情

导语

本文为我之前在CSDN平台上的一篇博客记录。原链接为:blog.csdn.net/u011426236/…

 1.数组运算

MATLAB 是“matrix laboratory”的缩写形式。MATLAB主要用于处理整个的矩阵和数组,而其他编程语言大多逐个处理数值。

所有 MATLAB 变量都是多维数组,与数据类型无关。矩阵是指通常用来进行线性代数运算的二维数组。

1.1数组的创建和操作

在MATLAB中一般使用[]来创建数组,分隔符可以是空格或逗号,区分同一行的不同元素。用分号;来区分不同行。

下面来看一个例子,我们首先初始化一个数组A,他一共包含6个元素,分别是6,5,4,3,2,1。我们可以使用截取的方式来取出其中的一部分内容。

>> A = [6, 5, 4, 3, 2, 1];
>> a1 = A(1)

a1 =

     6

>> a2 = A(1:3)

a2 =

     6     5     4

>> a3 = A(3:end)

a3 =

     4     3     2     1

>> a4 = A(end:-1:1)%数组元素反序输出

a4 =

     1     2     3     4     5     6

>> a5 = A([1 6])%访问数组第1及第6个元素

a5 =

     6     1

除此之外,还可以通过冒号:或linspace函数创建等差的数组,这部分已在《MATLAB学习笔记(1)》中所讲到,这里不再赘述。下面介绍使用logspace函数创建一个等比数列数组。其调用格式为:

y  = logspace(a, b)%该函数创建行向量y,第一个元素为10^a,最后一个元素为10^b,形成总数为50个元素的等比数列。

y = logspace(a, b, n)%该函数创建行向量y,第一个元素为10^a,最后一个元素为10^b,形成总数为n个元素的等比数列。

>> logspace(1,4,4)

ans =

          10         100        1000       10000

例如,上面的例子就使用logspace函数创建了从10的1次方到10的4次方的4个log维度下的等比数列,分别是10,100,1000,10000。

1.2数组的运算

1.2.1算术运算

有别于矩阵的算术运算,对于乘除法应使用.*与./进行对应下标的运算(乘方为.^)。但要注意,数组长度要相等。

>> A = 1:10

A =

     1     2     3     4     5     6     7     8     9    10

>> B = 2:7

B =

     2     3     4     5     6     7


>> A + B
错误使用  + 
矩阵维度必须一致。
 
>> A ./ B
错误使用  ./ 
矩阵维度必须一致。

这里进行计算时,需要严格保证矩阵的维度相同。

通过dot函数也可以实现数组的点积运算,但同样要求A和B的长度要相同。

>> A = 1:5;
>> B = 2:6;
>> dot(A, B)

ans =

    70

>> sum(A.* B)

ans =

    70

1.2.2关系运算

MATLAB中的关系运算的运算法则如下:

(1).当两个比较量是标量时,直接比较两数大小,若关系成立,则返回1,反之为0;

(2).当两个比较量是数组时,逐个比较对应下标元素,返回值是一个与字符串长度大小相同的数组,其中每个元素为对应下标元素的比较结果。(长度要相等!)

>> A = [1 2 5 6 8];
>> B = [4 2 3 8 8];
>> C = 1:6;
>> A == B

ans =

     0     1     0     0     1

>> A == C
错误使用  == 
矩阵维度必须一致。

同样的,我们必须保证矩阵的维度一致,否则会引起报错。

1.2.3逻辑运算

MATLAB中逻辑运算法则如下:

(1).如果是非零元素则为真,用1表示;反之为假,用0表示;

(2).当两个比较量是数组时,逐个比较对应下标元素,返回值是一个与字符串长度大小相同的数组,其中每个元素为对应下标元素的比较结果。(长度要相等!)

总结

本篇博客记录了MATLAB中一些基础的数组运算的实现。MATLAB中所有数据类型的所有变量都是多维数组。向量是一维数组,矩阵是二维数组。因此,数组的基本运算操作对于掌握MATLAB是不可或缺的。