将1d矩阵模式设置为等于2d矩阵

Set a 1d Matrix Pattern Equal to a 2d Matrix

本文关键字:2d 矩阵 设置 1d 模式      更新时间:2023-10-16

我用代码创建了一个二维矩阵

for(i=0; i < size; i++)
{
    for(j=0; j <size; j++)
    {
        a1[i][j] = i+1 + j+2;
    }
}

我正试图在创建的矩阵中复制这种模式

double*
a = malloc(sizeof(double)*randk*randk);

我似乎不知道如何定义同样的模式。

来自comp.lang.cFAQ:

如何动态分配多维数组?

你的意思是创建相同的数字模式?只是:

for(int i = 0; i < randk; ++i)
  for(int j = 0; j < randk; ++j)
    a[i * randk + j] = i + j + 3;

或者,如果你喜欢单循环:

for(int i = 0; i < randk * randk; ++i)
  a[i] = (i / randk) + (i % randk) + 3;