MATLAB入门学习-#2-矩阵基础#1

MATLAB入门学习-#2-矩阵基础#1

MATLAB的各种数据类型,在MATLAB中均以矩阵的形式存在(标量、向量都是特殊的矩阵),矩阵是MATLAB最基本的数据对象。

1.建立一个矩阵

1. 1直接输入法
在命令窗口直接输入矩阵元素。按行输入矩阵元素,同一行元素使用空格或者逗号隔开,不同行元素使用分号或者回车作为间隔。

>> A=[1 2 3 4];
>> B=[2,3,4,5];
>> C=[1,2,3,4;2,3,4,5];
>> A,B,C

A =

     1     2     3     4


B =

     2     3     4     5


C =

     1     2     3     4
     2     3     4     5

1. 2M文件建立矩阵
启动编辑器(输入edit命令,或者使用按钮),输入待建立矩阵,输入格式要求和直接输入法类似,只不过不同行元素必须使用分号作为间隔。
1. 3特殊矩阵的建立

  • 零矩阵(command:zeros)
>> B=zeros(5)

B =

     0     0     0     0     0
     0     0     0     0     0
     0     0     0     0     0
     0     0     0     0     0
     0     0     0     0     0
  • 幺矩阵(command:ones)
>> A=ones(5,6)

A =

     1     1     1     1     1     1
     1     1     1     1     1     1
     1     1     1     1     1     1
     1     1     1     1     1     1
     1     1     1     1     1     1

1. 4冒号表达式建立矩阵
冒号是一个重要的运算符,语法e1:e2:e3,e1为初始值,e2为步长,e3为终止值,产生行向量,以e1为开始,e3为结束,步长为e2。

>> A=[1:1:10]

A =

     1     2     3     4     5     6     7     8     9    10

1. 5linspace建立行向量
语法linspace(a, b, n)。a和b分别为行向量的第一个和最后一个元素,n为总元素,省略n自动产生100个元素的行向

2.矩阵的简单操作

2. 1矩阵索引
使用A[行,列]查询(sub)或者使用A(序号)查询(ind),使用序号查询时应注意机器储存矩阵是按列储存的,即第一行第一列的序号是1,第二行第一列的序号是2,第三行第一列的序号是3…

>> A=[1 2 3;4 5 6;7 8 9];
>> A(2,3)

ans =

     6

>> A(4)

ans =

     2

还能做到找元素所在的位置,可以输出坐标sub或者是序号ind:

>> A=[1 2 3;4 5 6;7 8 9];
>> [m,n]=find(A==7)

m =

     3


n =

     1

>> ind=find(A==7)

ind =

     3

sub和ind之间还可以互相转换:

>> A=[1 2 3;4 5 6;7 8 9];
>> sub2ind(size(A),2,3)

ans =

     8

>> [m,n]=ind2sub(size(A),8)

m =

     2


n =

     3

2. 2重排(command:reshape(A,m,n))

>>  A=[1 2 3 4;5 6 7 8];
>> B=reshape(A,4,2)

B =

     1     3
     5     7
     2     4
     6     8

2. 3转置
来一个单引号
2. 4拆分(索引的一个特例)

>>  A=[1 2 3;4 5 6;7 8 9];
>> B=A(1,:)      %得到矩阵A的第一行所有列

B =

     1     2     3

>> C=A(1,1:2)   %得到矩阵A的第一行第一列到第二列

C =

     1     2

>> D=A(2,1:end-1)    %得到矩阵A的第二行第一列到倒数第二列

D =

     4     5

>> E=A([1,2],[1,2])   %得到矩阵A的第一行到第二行的第一列到第二列(哈哈奇怪的说法)

E =

     1     2
     4     5

2. 5删除
删除是通过赋空值来实现的。(空值是[])

>>  A=[1 2 3;4 5 6;7 8 9];
>> A(1,:)=[]

A =

     4     5     6
     7     8     9

2. 6扩展(command:repmat(A,m,n))
将A复制,并按照m行n列来搞。

>>  A=[1 2 3;4 5 6;7 8 9];
>> B=repmat(A,3,2)

B =

     1     2     3     1     2     3
     4     5     6     4     5     6
     7     8     9     7     8     9
     1     2     3     1     2     3
     4     5     6     4     5     6
     7     8     9     7     8     9
     1     2     3     1     2     3
     4     5     6     4     5     6
     7     8     9     7     8     9

2. 7压缩(command:unique(A))
这个比较简单,就是去掉重复的元素,我就不多bb了,直接上程序。

>> A=[1 2 2 3 3 3 4 4 4 4];
>> B=unique(A)

B =

     1     2     3     4

猜你喜欢

转载自blog.csdn.net/StefanCharlie/article/details/83017520