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依次到63 A=2:64 %每次递增25 B=2.5:2:10.96 C=2.3:2:9.97 %每次递增-28 D=8:-2:19 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-B5 D=A+B6 E=A+1007 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<=106 D=A>107 E=A>B8 F=A==B
1 clear all;2 A=[11 10 13 4 5]3 B=[3 15 21 6 5]4 A(A>10)=105 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&B5 D=A|B6 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>04 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 %修改为20010 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')
6 矩阵的创建
1 clear all;2 %两行四列3 A=[1:4;5:8]4 %获取第二行第三列元素5 f1=A(2,3)6 %获取第二个元素7 f2=A(2)8 %获取第4个元素9 f3=A(4)
1 clear all; 2 A=[1:4;5:8;9:12;13:16] 3 %矩阵的第一行 4 f1=A(1,:) 5 %矩阵的第三列 6 f2=A(:,3) 7 %矩阵的两行两列 8 f3=A(1:2,1:2) 9 %获取最后一列10 f4=A(1:end,end)
1 clear all; 2 A=[1:4;5:8;9:12;13:16] 3 %将双下标转换为单下标 4 ind1=sub2ind(size(A),3,4) 5 %获取元素 6 A(ind1) 7 8 A(3,4) 9 %将单下标转换为双下标10 [I,J]=ind2sub(size(A),10)11 ind2=sub2ind(size(A),I,J)
1 clear all;2 A=[1:4;5:8;9:12;13:16]3 %对矩阵进行判断4 B=A>55 %矩阵中如果大于5就赋值为56 A(A>5)=57 f1=find(A>4)8 %矩阵中如果A>4就赋值为69 A(find(A>4))=6
1 clear all;2 A=[1:4;5:8]3 a=A(2,3)4 %第4行第四列,其他扩充为05 A(4,4)=36 A(5,5) %出错
7 矩阵的拓展
1 clear all; 2 %两行四列的矩阵 3 A=[1:4;5:8] 4 B=[1:4;5:8] 5 %横着进行连接 6 C=cat(2,A,B) 7 %横着进行连接 8 D=horzcat(A,B) 9 %竖着进行连接10 E=vertcat(A,B)
1 clear all;2 %建立3行3列的魔术矩阵3 A=magic(3)4 %以A作为基本元素,进行矩阵的赋值5 B=repmat(A,2,3)6 %以A作为基本元素,进行矩阵的赋值7 C=repmat(A,[2,3])
8 矩阵的块操作
1 clear all;2 A=magic(3)3 B=[1:2;3:4]4 %矩阵作为对角块产生C,D5 C=blkdiag(A,B)6 D=blkdiag(B,A)
9 矩阵中元素的删除
1 clear all;2 A=rand(4,4)3 %第一行第三行进行删除4 A([1 3],:)=[]5 %最后一列进行删除6 A(:,end)=[]
10 矩阵的转置
1 clear all; 2 %两行四列 3 A=rand(2,4) 4 %转置 5 A1=A' 6 A2=transpose(A) 7 8 %复数转置 9 B=[2+3i,4+5i,3;2 4+i 5+3*i]10 B1=B'11 %不转为共轭12 B2=B.'13 B3=ctranspose(B)
11 矩阵的旋转
1 clear all;2 %创建随机的3行4列矩阵3 A=rand(3,4)4 %逆时针旋转90度(默认为90度)5 B=rot90(A)6 %逆时针将矩阵逆时针旋转90度的2倍7 C=rot90(A,2)8 D=rot90(A,4)
12 矩阵的翻转
1 clear all; 2 A=rand(3,4) 3 %左右翻转 4 B=fliplr(A) 5 %上下翻转 6 C=flipud(A) 7 %上下翻转 8 D=flipdim(A,1) 9 %左右翻转10 E=flipdim(A,2)
13 矩阵尺寸的改变
1 clear all;2 X=[1:4;5:8]3 %转换成1行8列4 Y1=reshape(X,1,8)5 %%转换成4行2列6 Y2=reshape(Y1,[4 2])7 %转换WieY2一样的格式8 Y3=reshape(X,size(Y2))
14 矩阵的基本数值运算
1 clear all;2 A=[1:4;5:8]3 B=[2 3 5 4;6 7 4 5]4 C=A-B5 D=A+100
1 clear all; 2 A=[1:4;5:8] 3 B=[2 3;1 3;6 7;4 5] 4 %矩阵的乘法(行乘以列) 5 C=A*B 6 7 A 8 B' 9 %矩阵的每一个元素相乘(维数要一样)10 D=A.*B'11 %每一个元素都乘以512 E=A*5
15 矩阵的除法
1 clear all; 2 A=[21 2 3;7 3 1;9 4 2] 3 B=[3 5 7;2 12 4;2 7 4] 4 %C1 C2相等,相当于A的逆矩阵乘以B 5 C1=A\B 6 C2=inv(A)*B 7 8 %D1 D2相等,相当于B乘以A的逆矩阵 9 D1=B/A10 D2=B*inv(A)11 12 %3个矩阵相乘13 E1=A^314 E2=A*A*A
1 clear all; 2 A=[1 2 3;7 3 1;9 4 2] 3 B=[3 5 7;2 12 4;2 7 4] 4 %A的每一个元素除以B的每一个元素 5 C1=A./B 6 %B的每一个元素除以A的每一个元素 7 C2=A.\B 8 %每一个元素都除以2 9 C3=A./210 %每一个元素都平方11 D=A.^2
1 clear all; 2 A=[1 2 3;7 3 1;9 4 2] 3 B=[3 5 7;2 12 4;2 7 4] 4 %A的每一个元素除以B的每一个元素 5 C1=A./B 6 %B的每一个元素除以A的每一个元素 7 C2=A.\B 8 %每一个元素都除以2 9 C3=A./210 %每一个元素都平方11 D=A.^2
16 矩阵元素的查找
1 clear all; 2 A=[1 0 3;0 3 1;9 4 2] 3 %矩阵中存在数据的位置 4 B=find(A) 5 %找到所有大于3的元素 6 C=find(A>=3) 7 %找到所有大于等于3的元素 8 D=A(find(A>=3)) 9 %把A=9的元素赋值为10010 A(find(A==9))=100
17 矩阵元素的排序
1 clear all; 2 A=[1 0 3;0 3 1;9 4 2] 3 %每一列进行排序(升序) 4 B=sort(A) 5 %每一行进行排序 6 C=sort(A,2) 7 %每一列进行排序(降序) 8 D=sort(A,'descend') 9 %每一列降序进行排序10 E=sort(A,2,'descend')
18 矩阵元素的求和
1 clear all; 2 A=[1 2 3 4;5 6 7 8;1 1 1 1] 3 %每一列进行求和 4 B1=sum(A) 5 %每一行进行求和 6 B2=sum(A,2) 7 %每一列进行求和,维数相同 8 C1=cumsum(A) 9 %每一行进行求和,维数相同10 C2=cumsum(A,2)11 %求和再求和求出所有的和12 D=sum(sum(A))
19 矩阵元素的求积
1 clear all; 2 A=[1 2 3 0;2 6 7 8;1 2 3 5] 3 %每一列求积 4 B1=prod(A) 5 %每一行求积 6 B2=prod(A,2) 7 %每一列求积,维数相同 8 C1=cumprod(A) 9 %每一行求积,维数相同10 C2=cumprod(A,2)
20 全零矩阵
1 clear all;2 A=zeros(4)3 B=zeros(2,3)4 C=zeros(size(B))
21 全1矩阵
1 clear all;2 A=ones(3)3 B=ones([3,2])4 C=ones(size(A))
22 单位矩阵
1 clear all;2 A=eye(3)3 B=eye([4,3])4 C=eye(size(B))
23 0-1之间均匀分布的随机矩阵
1 clear all;2 A=rand(3)3 B=rand([2,3])4 C=rand(size(B))
24 标准正态分布随机矩阵
1 clear all;2 A=randn(3)3 B=randn([2,3])4 C=randn(size(B))
25 魔方矩阵
1 clear all;2 A=magic(2)3 B=magic(3)4 C=magic(4)
26 范德蒙矩阵
1 clear all;2 A=vander([1;2;4;6])3 B=vander([1 2 3 4])