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

4

我想要创建一个二维数组dij(i和j是下标)。我希望能够执行dij = di,j-1 + (di,j-1 - di-1,dj-1) / (4 ^ j-1)。我的想法是先创建两个一维数组,然后将它们组合成一个二维数组。是否有更简单的方法?


1
请说明您的问题。构建数组的起始数据是什么? - Leo Alekseyev
数组 dij 是一个二维数组,0:nx0:n 例如 dij = [0:n;0:n] - Ben Fossen
n是多大呢? - Justin Peel
我认为Leo的意思是:0行和0列的起始值是什么?你的dij公式是基于前一行和列中的值计算的,所以你必须将0行和列初始化为某个值来开始运算。 - gnovice
2个回答

6

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

d = zeros(n,n)

然后将您的d(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循环进行循环。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接