gpt4 book ai didi

c++ - 将此 C++ 代码转换为 Matlab

转载 作者:行者123 更新时间:2023-11-28 06:15:37 26 4
gpt4 key购买 nike

我正在尝试将直接的 C 代码转换为 matlab,但我被困在一开始似乎很清楚的地方。这个板 block 是做什么的? SIZE_N2 = 25, w = 533, h = 800

//Init the L matrix. L is a sparse matrix that only contains SIZE_N2 non-zero elements per row.
//We store the L matrix in an array with one row per image pixel and one column per non-zero value.
//Each array cell accumulates values according to equation 11.
LMatrix = new double* [w*h];
for(i=0; i<w*h; i++){
LMatrix[i] = new double[SIZE_N2];
for(j=0; j<SIZE_N2; j++){
LMatrix[i][j] = 0;
}
}

不是在Matlab中创建这个矩阵吗?

LMatrix = zeros(SIZE_N2, w*h);

当我用它运行代码时,矩阵在 for 循环中越界。

有人知道这个的正确实现方式吗?

谢谢!

最佳答案

首先,引用整个 source code 会很有帮助(以防万一)和一些documentation about it (所以我们知道,例如,什么是“方程式 11”)。

现在,如果我正确理解了代码,那么在 MATLAB 中所有内容(包括循环)都可以替换为以下内容:

LMatrix = sparse([],[],[],w*h,w*h,SIZE_N2*h);

除非您事先知道非零元素应该在哪里,在这种情况下,您可以直接在那里构建最终的稀疏矩阵,然后使用其他语法之一( docs1docs2 )。

关于c++ - 将此 C++ 代码转换为 Matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30389249/

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