2010-03-12 131 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循环遍历它。