C++ 将二维无符号整数矩阵展平为C+中的双精度矩阵+;

C++ 将二维无符号整数矩阵展平为C+中的双精度矩阵+;,c++,C++,我有一个2D矩阵,它有28个值:unsigned int CorrelatedF_int[j][k]j=4和k=7。 我想把这个矩阵转换成一个双精度:double-CorrelatedF_int[27]。这个双精度应该包含所有28个值乘以1000。我在这个网站上搜索过,但没有找到任何能帮助我解决问题的答案。那么我该如何进行这种转换呢?因为我是C++初学者,任何帮助都会被理解。 < p>你没有指定多少行和列,所以我将使用n和m。 你可以这样做 double arr[28]; int k=0; f

我有一个2D矩阵,它有28个值:
unsigned int CorrelatedF_int[j][k]j=4和k=7。

我想把这个矩阵转换成一个双精度:
double-CorrelatedF_int[27]。这个双精度应该包含所有28个值乘以1000。我在这个网站上搜索过,但没有找到任何能帮助我解决问题的答案。那么我该如何进行这种转换呢?因为我是C++初学者,任何帮助都会被理解。

< p>你没有指定多少行和列,所以我将使用n和m。 你可以这样做


double arr[28];
int k=0;
for(int i=0;i<n;i++)
   for(int j=0;j<m;j++){
             arr[k]=(double)matrix[i][j]*1000;
                k++;
}

双arr[28];
int k=0;

对于(int i=0;i假定展平数组中基于行的顺序:

constexpr int M = 4;
constexpr int N = 7;
unsigned int ui_arr[M][N];
double d_arr[M * N] = { 0 };

for (int i = 0; i < M * N; ++i)
    d_arr[i] = 1000 * ui_arr[i / N][i % N];
constexpr int M=4;
constexpr int N=7;
未签署的国际协议[M][N];
双d_arr[M*N]={0};
对于(int i=0;i
C++20系列样式:

模板
std::数组连接到双数组(const std::数组&a)
{
std::数组结果;
使用std::ranges::views::join;
std::ranges::copy(一个| join,result.begin());
返回结果;
}

副词:你使用的是C扩展(变量长度数组),在标准C++中是不允许的。