我们如何在C++中同时创建 N 个矩阵
How do we create N matrices simultaneously in C++?
我想同时创建N
维(n,k)
矩阵。
我在 Matlab 中有一个代码,我正在尝试将其转换为 C.假设我想同时构造 2 个矩阵,在 R 语言中如下:
http://www.dummies.com/how-to/content/how-to-create-an-array-in-r.html("请参阅"在R中使用创建者函数"段落)
请帮助我,我知道对于你们中的一些人来说,这个问题很愚蠢,但我是这种语言的新手,我没有其他人要问。
让我们先解释一下关于多维数组的一些信息。 a[n][k]
是 n 个数组,每个数组的长度为 k 个元素。因此,a[n][k][N]
将创建 n 个类型 a[k][N]
的数组。您需要做的就是定义数组(例如:int a[2][3][4]
)。
如果不知道编译时数组的大小,请使用动态分配和指针。代码是这样的:
int*** pppA = new int**[n];
for (int i = 0; i < n; i++)
{
pppA[i] = new int*[k];
for (int j = 0; j < k; j++)
{
pppA[i][j] = new int[N];
}
}
不要忘记删除您完成使用它的内存。
我不知道 R,但如果我理解评论中链接的示例,您正在寻找的是类似的东西(如果您知道编译时的维度):
int a[3][4][2];
这将创建一个整数数组,没有初始化值。如果要初始化它,有两个选择 - 编写循环或使用初始值设定项。
初始 化:
int a[2][4][3] = {{{1,2,3},{4,5,6},{7,8,9},{10,11,12}},{{13,14,15},{16,17,18},{19,20,21},{22,23,24}}};
//print the array
for (int i =0; i < 2; i ++)
{
for (int j = 0; j < 4; j++)
{
for (int k = 0; k < 3; k++)
{
cout << a[i][j][k] << ',';
}
cout << endl;
}
cout << "---------------------" << endl;
}
圈:
int a[2][4][3];
for (int i =0; i < 2; i ++)
{
for (int j = 0; j < 4; j++)
{
for (int k = 0; k < 3; k++)
{
a[i][j][k] = 12 * i + 4*j + k;
}
}
}
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 使用std::multimap迭代器创建std::list
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 使用CMake创建QML插件
- 如何在c++中为模板函数实例创建快捷方式
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 试图在visual studio上用C++创建一个桌面应用程序
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 如何在C++20中创建模板别名的推导指南
- 如何为模板化对象创建模板向量?VS正在投掷C3203
- 如何创建一个空的全局类并在启动时实例化它
- 无法创建抽象类的实例
- 链接到自行创建的dll失败
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 如何在C++类内存结构中创建"spacer"?
- 终端不会为C++文件创建.exe文件吗
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息