Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何在Matlab中制作二维阵列?_Arrays_Matlab_Multidimensional Array - Fatal编程技术网

Arrays 如何在Matlab中制作二维阵列?

Arrays 如何在Matlab中制作二维阵列?,arrays,matlab,multidimensional-array,Arrays,Matlab,Multidimensional Array,我想制作一个二维数组dij(I和j是下标)。我想能够做dij=di,j-1+(di,j-1-di-1,dj-1)/(4^j-1)我的想法是把它做成一维数组,然后把它们组合成二维数组。有更简单的方法吗?因为n是10,我肯定会这样预先分配数组: d = zeros(n,n) 然后放入d(1,1)元素并显式处理第一行(我猜您只是不包括处理前一行的术语),然后再循环处理其余行。请记住,matlab从1开始编号。然后,使用有用的函数 zeros(m,n) % Makes a 2D array with

我想制作一个二维数组dij(I和j是下标)。我想能够做dij=di,j-1+(di,j-1-di-1,dj-1)/(4^j-1)我的想法是把它做成一维数组,然后把它们组合成二维数组。有更简单的方法吗?

因为n是10,我肯定会这样预先分配数组:

d = zeros(n,n)

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

请记住,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
最后一个是有用的,如果你构建了一个线性阵列,但想从中得到一个正方形阵列。(如果要对列而不是行进行计数,
重塑(a,n,m)

还可以执行两个向量的外积:

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

   1   2   3
   2   4   6
   3   6   9

要使用您描述的数学实际构建数组,您可能必须至少在一个轴上使用for循环对其进行循环。

请澄清您的问题。构建数组的起始数据是什么?数组dij是二维数组0:nx0:n,例如dij=[0:n;0:n]顺便问一下,n有多大?我想Leo的意思是:第0行和第0列的起始值是什么?你的dij公式是前一行和第0列的值的函数,因此你必须将第0行和第0列初始化为某个值才能开始。