Matlab学习笔记

  前几天大致了解了一些Matlab的简单用法,今天开始正式的学习记录,昨天学习了如何创建一个数组。

1.在Matlab中创建一维数组的方法有4种:

1)直接输入法  2)步长生成法  3)定数线性采样法  4)定数对数采样法

  data1=[pi;log(5);7+6;2^3];(直接输入法)

  data2=[pi log(5) 7+6 2^3];(直接输入法)

  data3=2:2:3;(步长生成法)

  data4=2:10;(步长生成法)

  data5=linspace(2,10,5);(定数线性采样法)

  data6=logspace(1,5,10);(定数对数采样法)

  直接输入法:

  步长生成法:格式:“a:inc:b”,‘a\'表示的是数组第一个元素,\'inc\'表示创建数组之间的间隔(步长,默认为1,a>b时,inc>0,反之依然),‘b’表示数组的最后一个元素;

  定数线性采样法:x=linspace(a,b,n),其中‘a’,\'b\'分别是数组的第一个和最后一个元素,‘n’表示采样的个数;

  定数对数采样法:x=logspace(a,b,n),其中‘a’,\'b\'分别是数组的第一个和最后一个元素,‘n’表示采样的个数。

2.二维数组的创建

  Data1=[1 2 3

  5 6 7

  8 9 0]

  data2=[1,2,3;4,5,6;7,8,9]

3.三维数组的创建

1)下标法创建三位数组

  for i=1:2

  for j=1:2

  for k=1:2

  a(i,j,k)=i+j+k;

  end

  end

  end(这里不太理解,保留疑问)

2)使用低维数组创建三位数组

  for j=1:2

  D2=[1,2,3;4,5,6;7,8,9];

  D3(:,:,1)=D2;

  D3(:,:,2)=D2*2;

  D3(:,:,3)=D2*3;

3)使用创建函数创建三维数组

cat指令:cat(Concatenate的缩写)是matlab中的一个函数,用于构造多维数组(源于百度百科)。

调用格式为C = cat(dim,A1,A2,A3,A4......),dim是创建数组的维度,A1,A2,A3,A4......是各维度上的数组;

>> D2=[1,2,3;4,5,6;7,8,9];

  C=cat(3,D2,2*D2,3*D2);

>> C

C(:,:,1) =

1 2 3

4 5 6

7 8 9

C(:,:,2) =

2 4 6

8 10 12

14 16 18

C(:,:,3) =

3 6 9

12 15 18

21 24 27

repmat指令:repmat 即 Replicate Matrix ,复制和平铺矩阵,是 MATLAB 里面的一个函数(源于百度百科)。

repmat的命令的功能在于复制并堆砌数组,其调用格式B=repmat(A,[m,n,p...]),A表示的是复制的数组模块,第二个输入的参数表示该数组在各个维度上复制的个数。

D2=[1,2,3;4,5,6;7,8,9];

D3=repmat(D2,2,3);

D4=repmat(D2,[1 2 3]);

>> D2=[1,2,3;4,5,6;7,8,9];

D3=repmat(D2,2,3);

D4=repmat(D2,[1 2 3]);

>> D3

D3 =

1 2 3 1 2 3 1 2 3

4 5 6 4 5 6 4 5 6

7 8 9 7 8 9 7 8 9

1 2 3 1 2 3 1 2 3

4 5 6 4 5 6 4 5 6

7 8 9 7 8 9 7 8 9

>> D4

D4(:,:,1) =

1 2 3 1 2 3

4 5 6 4 5 6

7 8 9 7 8 9

D4(:,:,2) =

1 2 3 1 2 3

4 5 6 4 5 6

7 8 9 7 8 9

D4(:,:,3) =

1 2 3 1 2 3

4 5 6 4 5 6

7 8 9 7 8 9

reshape命令:reshape函数重新调整矩阵的行数、列数、维数。

调用格式B = reshape(A,[m,n,p...]),A就是带重组的矩阵,后面的输入参数则表示数组各维的维度(维度即为元素个数)

4.创建低维标准数组

>> A = zeros(3,2)

A =

0 0

0 0

0 0

>> B=ones(2,4)

B =

1 1 1 1

1 1 1 1

>> C=eye(4)

C =

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

>> D=magic(5)

D =

17 24 1 8 15

23 5 7 14 16

4 6 13 20 22

10 12 19 21 3

11 18 25 2 9

>> randn(\'state\',0)

>> E=randn(1,2)

E =

-0.4326 -1.6656

>> F=gallery(5)

F =

-9     11     -21       63    -252

70     69      141      -421    1684

-575    575     -1149     3451    -13801

3891    -3891    7782      -23345   93365

1024    -1024    2048     -6144 2   4572