建立数组举例:
clear all;
A=[] %空数组
B=[5 6 5 4 1] %行向量 一行五列矩阵
C=[5,5,5,4,4] %行向量 一行五列矩阵
D=[3;3;3;3;5] %列向量 五行一列矩阵
E=C' %对行向量转置得到列向量
clear all;
A=[3 9 6 8 7]
b1=A(3) %数组的第3个元素 b1 = 6
b2=A(2:4) %数组的第2:4个元素 b2 = 9 6 8
b3=A(2:end) %数组的第2个到最后一个元素 b3 = 9 6 8 7
b4=A(4:-1:1) %数组的第4个、第3个和第2个,第1个元素 b4 =8 6 9 3
b5=A(end:-1:1) %数组元素反序输出 b5 =7 8 6 9 3
b6=A([2 4]) %数组的第2和第4个元素 b6 =9 8
%% 通过冒号建立一维数组
clear all;
A=4:8 A =4 5 6 7 8
B=1.2:3:15.6 B =1.2000 4.2000 7.2000 10.2000 13.2000
C=6:-2:3 C =6 4
%% 数组的合并
clear all;
A=[10 20 30;20 30 40;50,60,70] %3*3矩阵
B=[3:5;6:8;9:1:11] %同上
C=[A B] %行数不变 变为3*6矩阵
D=[A;B] %列数不变 变为6*3矩阵
%% 数组的算术运算 针对每一个元素运算 数组维数必须相等才行
clear all;
A=[55 45 33 21 6] %1*5矩阵
B=[5 4 3 2 1] %1*5矩阵
C=A-B %对应元素相减,若想进行A-B运算,则数组维数必须相等
D=A+B
E=A+100 %矩阵内每一个元素都加100
A =
10 20 30
20 30 40
50 60 70
B =
3 4 5
6 7 8
9 10 11
C =
10 20 30 3 4 5
20 30 40 6 7 8
50 60 70 9 10 11
D =
10 20 30
20 30 40
50 60 70
3 4 5
6 7 8
9 10 11
%% 数组的乘法 维数要相同 对应元素相乘
clear all;
A=[1 2 3 4 5] %1*5
B=[0 0 0 0 2] %1*5
C=A.*B %这个点乘是对应元素相乘
D=A*3
C =
0 0 0 0 10
D =
3 6 9 12 15
%% 数组的除法 维数要相同 对应元素相除 左边除法和右边除法不一样
clear all;
A=[1 1 1 1 1]
B=[0 1 3 5 2]
C=A./B
D=A./4
E=A.\B %相当于B除以A
C =
Inf 1.0000 0.3333 0.2000 0.5000 (inf是无穷大)
D =
0.2500 0.2500 0.2500 0.2500 0.2500
E =
0 1 3 5 2
%% 数组元素的比较
clear all;
A=[16 10 15 4 4]
B=[4 5 5 5 5]
C=A<=10 %≤10赋一 下面同理
D=A>10
E=A>B
F=A==B
%% 数组元素满足条件的重新赋值
clear all;
A=[11 10 13 4 5]
B=[3 15 21 6 5]
A(A>10)=10 %A中大于10的元素赋10
B(B==5)=100
D =
1×5 logical 数组 内储存bool值
1 0 1 0 0
E =
1×5 logical 数组
1 1 1 0 0
F =
1×5 logical 数组
0 0 0 0 0
A =
10 10 10 4 5
B =
3 15 21 6 100
%% 数组的逻辑运算
clear all;
A=[33 0 0 33 33]
B=[2 13 0 0.6 4]
C=A&B %与 或 非 非0的数都当作1
D=A|B
E=~A
clear all;
A=[13 0 0 2 4]
B=[1 11 0 0.2 1]
C=A&1 %C =1×5 logical 数组 1 0 0 1 1
D=A|0 %D =1×5 logical 数组 1 0 0 1 1
A(A&1)=10 %A =10 0 0 10 10
C =
1×5 logical 数组
1 0 0 1 1
D =
1×5 logical 数组
1 1 0 1 1
E =
1×5 logical 数组
0 1 1 0 0
%% 如何获取数组的大小 两个函数
clear all;
A=[12 0 0 2 2]
d=size(A)
[m,n]=size(A)
length(A) %获取数组的长度(行或者列,哪个大返回哪个)
d =1 5
m =1
n =5
ans =5
clear all;
A=[33 0 0 7 5]
B=A>5
f1=isnumeric(A) %判断是否是数值型 f1=1
f2=islogical(B) %判断是否是逻辑型 f2=1
%% 数组查找和修改
clear all;
A=[4 4 6 4 5]
find(A>5) %给出元素所在序号ans = 3
find(A==5) % ans = 5 这里是位号
A(find(A>5))=A(find(A>5))+100 %即A(3)=A(3)+100 结果为 A =4 4 106 4 5
A(A==5)=200
%% 数组排序
clear all;
A=[5 4 3 2 1]
B=sort(A) %升序
[C,I]=sort(A,'ascend') %有些复杂,用到再看 %ascend:上升
D=sort(A,'descend') %降序 %decend:下降
B =
1 2 3 4 5
C =
1 2 3 4 5
I =
5 4 3 2 1
D =
5 4 3 2 1
[C,I]=sort(A,'ascend') %有些复杂,届时用到再看