我想制作一个2D数组dij(i和j是下标)。我希望能够做dij = di,j-1 +(di,j-1 - di-1,dj-1)/(4 ^ j-1)我的想法是为了制作1D数组然后将它们组合成2D阵列。有更简单的方法吗?
答案 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循环在至少一个轴上循环它。