gpt4 book ai didi

c++ - 如何将 vector 转换为矩阵 C++ vec2mat

转载 作者:行者123 更新时间:2023-11-30 04:53:09 25 4
gpt4 key购买 nike

我最近看到这段代码,我认为它等同于从 matlab 到 C++ 的 vec2mat:

int mat vec2mat(vec V, size_t cols) {
size_t rows = std::ceil(V.n_elems / double(cols));
return V.reshape(cols, rows);// return the original vector as matrix

我尝试将其应用到我的代码中,但没有成功。我希望有人可以帮助我找到正确的方法。这是我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int cargas[20];
srand(time(NULL));
int i;

for (i = 0; i < 20; i++)
{
cargas[i] = (rand() % 5) + 1;
}

for (i = 0; i < 20; i++)
printf("%d ", cargas[i]);
}

(我想把 vector 变成一个 4x5 矩阵)

最佳答案

您发布的例程似乎使用了 armadillo图书馆。更正后的版本可能是:

#include <armadillo>

arma::mat vec2mat(const arma::vec& V, size_t cols)
{
size_t rows = std::ceil(V.n_elem / double(cols));
return arma::reshape(V, rows, cols);
}

请注意,例程需要 armadillo 类型 arma::vec 作为输入;它不适用于 C 风格的数组,但您可以将其转换为 arma::vec

请参阅armadillo documentation有关图书馆的更多信息。

关于c++ - 如何将 vector 转换为矩阵 C++ vec2mat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53952465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com