2010-03-12 60 views
4

我想做一個二維數組dij(我和j是下標)。我想能夠做dij = di,j-1 +(di,j-1-di-1,dj-1)/(4^j-1)將它們組合成一個2D數組。有沒有更簡單的方法來做到這一點?如何在Matlab中創建二維數組?

+1

請澄清你的問題。數組構造的起始數據是什麼? – 2010-03-12 04:57:28

+0

數組dij是一個二維數組0:nx0:n for示例 dij = [0:n; 0:n] – 2010-03-12 05:40:19

+0

n有多大? – 2010-03-12 05:47:51

回答

6

由於n爲10,我肯定會只是預分配數組是這樣的:

d = zeros(n,n) 

然後把你的d(1,1)元素,並明確處理您的第一行(我猜你只是不包括處理前一行的術語),然後循環遍歷其餘的行。

+3

對於矩陣矩陣'd =零(n)'也適用。 – mtrw 2010-03-12 07:42:18

2

請記住,MATLAB開始從1編號然後,有用的功能是

zeros(m,n) % Makes a 2D array with m rows and n columns, filled with zero 
ones(m,n) % Same thing with one 
reshape(a , m , n) % Turns an array with m*n elements into a m,n square 

,如果你建立一個線性陣列,但後來想使一個正方形一個出來的最後一個是有用的。 (如果你想計數的列而不是行,reshape(a,n,m)'

您還可以執行兩個向量的外積:

> [1;2;3]*[1 2 3] 
ans = 

    1 2 3 
    2 4 6 
    3 6 9 

要真正建立與您所描述的數學數組,你可能必須在至少一個軸上用for循環遍歷它。