gpt4 book ai didi

c++ - 如何在 C++ 中有效地访问数组的多个元素?

转载 作者:行者123 更新时间:2023-11-30 03:45:41 26 4
gpt4 key购买 nike

这是我的第一篇文章,希望我能达到标准...

为了提高效率,我正在将最初用 MATLAB 编写的程序翻译成 c++(我对此很陌生)。我实际正在处理的这段代码恢复了对一个 vector (矩阵)的各种索引的一步访问。例如,如果 M1 是一个大小为 10x15 的矩阵,程序将定义一个新矩阵,如下所示:

idxs1 = [1 2 3];
idxs2 = [1 2 3 4 5];
M2 = M1 (idxs1 , idxs2);

结果 M2 为大小为 3x5 的矩阵。现在,我猜想 MATLAB 实际上所做的是通过索引给定的 M1 的各个位置一一访问,然后通过重新排列获取的许多内容来构造 M2,所有这些都非常有效。

我的问题是,如何在 c++ 中重现这种机制?据我所知,没有直接的方法可以连续访问数组的各种索引,而且我使用的 for 循环似乎相当麻烦。也许有一些聪明的方法可以在不要求“太多”处理器时间的情况下做到这一点?此外,出于教育目的,如果有人可以解释执行此类操作时 MATLAB 实际做了什么,我将不胜感激。

提前致谢,对于给您带来的不便,我们深表歉意!

P.S:为了防止问题增加任何内容,我正在使用 MEX 文件来链接两种语言。P.S2: 顺便说一句,我发现了一些相关的问题,但是关于其他语言:

最佳答案

“Armadillo 是一个高质量的 C++ 线性代数库,旨在实现速度和易用性之间的良好平衡

可用于直接在 C++ 中开发算法,或将研究代码快速转换为生产环境;语法 (API) 故意类似于 Matlab"

链接:http://arma.sourceforge.net/

关于c++ - 如何在 C++ 中有效地访问数组的多个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34585538/

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