gpt4 book ai didi

c++ - 如何访问 C++ mex 文件中的多维数组输入

转载 作者:行者123 更新时间:2023-11-30 05:37:25 26 4
gpt4 key购买 nike

我用 C++ 编写了我的程序,需要编写一个 C++mex 函数来传递输入参数并在 matlab 中检索一些输出值。但我在访问多维数组时遇到了一些问题。以下是我写的一段内容和错误消息。w 声明如下:

double **W;

W[i][j];

for (int i=0;i < 6; i++)
{
for (int j=0;j<6;j++)
{
//B[j + 6*i] = W[i][j];
B[j + 6*i] = W[i + 6*j];
}
}

编译时出现以下错误信息:

cannot convert ‘double*’ to ‘double’ in assignment

最佳答案

表示为 double** W 的二维数组需要分配空间。首先,您需要分配每一行。下面的代码说明了这一点:

#include <iostream>

using namespace std;

int main() {

int rows = 6, cols = 6;
double **W;

W = new double* [rows];

// allocate each row
for (int i = 0; i < rows; i++) {
W[i] = new double [cols];
}

for (int i = 0; i < 6; i++) {
for (int j = 0; j<6; j++) {
// do work here
}
}

// clean up in the end:
if (W != nullptr) {
for (int i = 0; i < rows; i++) {
delete[] W[i];
}
delete[] W;
W = nullptr;
}

return 0;
}

关于c++ - 如何访问 C++ mex 文件中的多维数组输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33232259/

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