Matlab导览第一章-数组
数组
创建
- 直接创建:
1
2
3>> A=[10,20,30,40]
>> B=[10;20;30;40]
>> C=[1,2;3,4] - 借助冒号:
1
2
3
4
5
6>> D=[1:2:8] %生成1-8之间以2为步进的数组,如果不指定则默认为1。
D =
1 3 5 7
>> D=[1:8]
D =
1 2 3 4 5 6 7 8 - 线性/对数间距向量:
1
2
3
4
5
6
7
8
9
10% 生成线性间距向量:y = linspace(x1,x2,n) 生成 n 个点。这些点的间距为 (x2-x1)/(n-1)。如果不指定n,则默认生成50个点。
>> y1=linspace(1,5,5)
y1 =
1 2 3 4 5
% 生成对数间距向量:y = logspace(a,b,n) 在 10 的幂 10^a 和 10^b(10 的 N 次幂)之间生成 n 个点。如果不指定n,则默认生成50个点。
>> y2=logspace(0,1,10)
y2 =
1.0000 1.2915 1.6681 2.1544 2.7826 3.5938 4.6416 5.9948 7.7426 10.0000 - 使用特定函数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21% 生成单位矩阵:I = eye(n,m) 返回一个主对角线元素为 1 且其他位置元素为 0 的 n×m 矩阵。如果不指定m,则默认生成n*n的矩阵。
>> eye(2,2)
ans =
1 0
0 1
>> eye(2,3)
ans =
1 0 0
0 1 0
% 创建全部为1的数组:X = ones(sz1,...,szN) 返回由 1 组成的 sz1×...×szN 数组,其中 sz1,...,szN 指示每个维度的大小。例如,ones(2,3) 返回由 1 组成的 2×3 数组。如果不指定其他参数,例如ones(3)默认生成3*3的数组。
>> ones(2,3)
ans =
1 1 1
1 1 1
% 生成均匀分布的随机数:X = rand(sz1,...,szN) 返回由随机数组成的 sz1×...×szN 数组,其中 sz1,...,szN 指示每个维度的大小。例如:rand(3,4) 返回一个 3×4 的矩阵。用法类似ones函数。
>> rand(2)
ans =
0.2785 0.9575
0.5469 0.9649索引
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23>> A=rand(3,4)
A =
0.8491 0.7577 0.6555 0.0318
0.9340 0.7431 0.1712 0.2769
0.6787 0.3922 0.7060 0.0462
>> A(4) %请注意,不同于C的二维数组,Matlab中的数组索引按照列进行。
ans =
0.7577
>> A(2,3) %直接指定第二行第三列的元素
ans =
0.1712
>> A(1:3,2:end) %第一到三行,第二到结尾行的元素。
ans =
0.7577 0.6555 0.0318
0.7431 0.1712 0.2769
0.3922 0.7060 0.0462
>> A(:,2) %第二列的全部元素
ans =
0.7577
0.7431
0.3922查找
find函数用于查找非零元素的位置,并返回索引值。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20>> A=magic(4)
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> find((A>8)&(A<14)) %查找大于8而小于14的元素的索引值
ans =
3
6
10
13
15
>> A(find((A>8)&(A<14))) %根据索引值找出对应元素
ans =
9
11
10
13
12排序
sort函数用于对元素进行排序:B = sort(A) 按升序对 A 的元素进行排序。
- 如果 A 是向量,则 sort(A) 对向量元素进行排序。
- 如果 A 是矩阵,则 sort(A) 会将 A 的列视为向量并对每列进行排序。
- 如果 A 是多维数组,则 sort(A) 会沿大小不等于 1 的第一个数组维度计算,并将这些元素视为向量。
B = sort(A,dim) 返回 A 沿维度 dim 的排序元素。例如,如果 A 是一个矩阵,则 sort(A,2) 对每行中的元素进行排序。
B = sort(___,direction) 使用上述任何语法返回按 direction 指定的顺序显示的 A 的有序元素。’ascend’ 表示升序(默认值),’descend’ 表示降序。
1 | >> A = [3 6 5; 7 -2 4; 1 0 -9] |
运算
注意 * 与 .* 的使用:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21>> A=rand(3)
A =
0.0971 0.3171 0.4387
0.8235 0.9502 0.3816
0.6948 0.0344 0.7655
>> B=ones(3)
B =
1 1 1
1 1 1
1 1 1
>> A.*B
ans =
0.0971 0.3171 0.4387
0.8235 0.9502 0.3816
0.6948 0.0344 0.7655
>> A*B
ans =
0.8530 0.8530 0.8530
2.1552 2.1552 2.1552
1.4948 1.4948 1.4948
>>
数组元素的删除与裁剪
注意删除的时候必须整行或者列删除1
2
3
4
5
6
7
8
9
10
11
12>> A=rand(3)
A =
0.7952 0.4456 0.7547
0.1869 0.6463 0.2760
0.4898 0.7094 0.6797
>> A(1,:)=[] %将第一行置空,等效于删除。
A =
0.1869 0.6463 0.2760
0.4898 0.7094 0.6797
>> A=A(1,:) %将第一行裁剪出来,保存为A。
A =
0.1869 0.6463 0.2760
本文标题:Matlab导览第一章-数组
文章作者:Raincorn
发布时间:2020-05-30
最后更新:2020-07-28
原始链接:https://blog.raincorn.top/2020/05/30/Matlab_Arry_01/
版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可