1. 程式人生 > >matlab科學計算(實驗一)(2)

matlab科學計算(實驗一)(2)

https://www.cnblogs.com/xzxhljq/p/5751421.html(陣列的建立) .在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