你如何在Matlab中创建一个二维数组?

时间:2010-03-12 04:48:56

标签: arrays matlab multidimensional-array

我想制作一个2D数组dij(i和j是下标)。我希望能够做dij = di,j-1 +(di,j-1 - di-1,dj-1)/(4 ^ j-1)我的想法是为了制作1D数组然后将它们组合成2D阵列。有更简单的方法吗?

2 个答案:

答案 0 :(得分:6)

由于n是10,我肯定会像这样预先分配数组:

d = zeros(n,n)

然后输入你的d(1,1)元素并显式处理你的第一行(我猜你只是不包括处理前一行的术语),然后循环遍历其余的行。

答案 1 :(得分: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循环在至少一个轴上循环它。