持续创作,加速成长!这是我参与「掘金日新计划 · 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是不可或缺的。