5.数组和矩阵分析

1  数组的建立和操作

 1 clear all;
 2 %空数组
 3 A=[]
 4 %行向量
 5 B=[1 2 3 4 5]
 6 %行向量
 7 C=[1,2,3,4,5]
 8 %列向量
 9 D=[1;2;3;4;5]
10 %转置
11 E=C'
1 clear all;
2 A=[1 2 3 4 5]
3 b1=A(3)            %数组的第3个元素
4 b2=A(2:4)          %数组的第2:4个元素
5 b3=A(3:end)        %数组的第3个到最后一个元素
6 b4=A(3:-1:1)       %数组的第3个、第2个和第1个元素
7 b5=A(end:-1:1)     %数组元素反序输出
8 b6=A([2 4])        %数组的第2和第4个元素
1 clear all;
2 %从2依次到6
3 A=2:6
4 %每次递增2
5 B=2.5:2:10.9
6 C=2.3:2:9.9
7 %每次递增-2
8 D=8:-2:1
9 E=2:-2:6

1.1  建立二维数组

1 clear all;
2 A=[1 2 3;2 3 4;5,6,7]
3 B=[1:3;4:6;7:1:9]
4 %横着连接
5 C=[A B]
6 %竖着连接
7 D=[A;B]

1.2  两点之间产生线性矢量

1 clear all;
2 %计算两点之间的线性矢量,产生20个
3 A=linspace(1,10,20)
4 B=linspace(2,8,10)
5 C=linspace(2,7,2)
6 D=linspace(2,7,1)

1.3  生成从10的a次方到10的b次方之间按对数等分的n个元素的行向量。

1 clear all;
2 format short;
3 A=logspace(1,2,10)
4 B=logspace(0,2,10)
5 C=logspace(2,7,2)
6 D=logspace(2,7,1)

2  数组的算术运算

2.1  数组的乘法

1 clear all;
2 A=[1 2 3 4 5]
3 B=[0 1 3 5 2]
4 C=A-B
5 D=A+B
6 E=A+100
7 X=[3 4 5 6]
8 A-X    %出错
1 clear all;
2 A=[1 2 3 4 5]
3 B=[0 1 3 5 2]
4 C=A.*B            %对应元素相乘
5 D=A*3             %每个元素都乘以3

2.2  数组的除法

1 clear all;
2 A=[1 2 3 4 5]
3 B=[0 1 3 5 2]
4 C=A./B%对应每一个元素相除
5 D=A./3%每一个元素都除以3

3  数组的关系运算

1 clear all;
2 A=[11 10 13 4 5]
3 B=[3 15 21 6 5]
4 %数组进行比较
5 C=A<=10
6 D=A>10
7 E=A>B
8 F=A==B
1 clear all;
2 A=[11 10 13 4 5]
3 B=[3 15 21 6 5]
4 A(A>10)=10
5 B(B==5)=100

4  数组的逻辑运算

1 clear all;
2 A=[11 0 0 1 5]
3 B=[3 15 0 0.5 5]
4 C=A&B
5 D=A|B
6 E=~A

5  数组信息的获取

 1 clear all;
 2 A=[11 0 0 1 5]
 3 %是否为空
 4 f1=isempty(A)
 5 %是否为单个元素的标量
 6 f2=isscalar(A)
 7 %检测数组是否为行向量或列向量
 8 f3=isvector(A)
 9 %检测数组是否为稀疏矩阵
10 f4=issparse(A)

1 clear all;
2 A=[11 0 0 1 5]
3 %获取数组的大小(行列)
4 d=size(A)
5 %m为行,n为列
6 [m,n]=size(A)
7 %A的长度
8 length(A)
1 clear all;
2 A=[11 0 0 1 5]
3 %获取维度
4 n1=ndims(A)
5 a=5;
6 %获取标量a的维度(标量看成一行一列的数组)
7 n2=ndims(a)
 1 clear all;
 2 A=[11 0 0 1 5]
 3 B=A>5
 4 %判断是否是数值型
 5 f1=isnumeric(A)
 6 %是否为实数型
 7 f2=isreal(A)
 8 %是否为整型
 9 f3=isinteger(A)
10 %是否是逻辑型
11 f4=islogical(B)

1 clear all;
2 A=[11 0 0 1 5]
3 B=A>0
4 C=['a' 'b' 'c']
5 %获取内存占用情况
6 whos
 1 clear all;
 2 A=[10 9 6 1 5]
 3 %发现A中大于5的元素下标
 4 find(A>5)
 5 %A中等于5的
 6 find(A==5)
 7 %把A>5的都加100
 8 A(find(A>5))=A(find(A>5))+100
 9 %修改为200
10 A(A==5)=200
1 clear all;
2 A=[10 9 6 1 5]
3 %排序
4 B=sort(A)
5 %升序排列
6 %C是排序后的数组,I是排序后的数组元素在原来数组中对应的位置
7 [C,I]=sort(A,'ascend')
8 %降序排列
9 D=sort(A,'descend')

猜你喜欢

转载自www.cnblogs.com/xiaochi/p/8881548.html