首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问表示2D矩阵的一维存储数组

问访问表示2D矩阵的一维存储数组
EN

Stack Overflow用户
提问于 2017-05-12 18:27:59
回答 1查看 302关注 0票数 0

我要在Excel VBA中创建一个2D方阵

代码语言:javascript
复制
Dim Matrix(0 To Nrows, 0 To Ncols) as double

然后我将它作为参数ByRef传递给一个函数库,

代码语言:javascript
复制
My_foo(Matrix(0,0))

它调用C++代码。在C++代码中,我想访问矩阵以获取值并进行其他操作。为此,我将这些值读取为一维数组,因此我创建了一个索引R*Ncols + C,其中R和C是2D表示中的元素位置

代码语言:javascript
复制
void _stdcall My_foo(double* M, long Nrows, long Ncols){

double Value;
R = 10;
C = 0;

Value =  M[R*Ncols + C];

}

此时,我希望找到位置为(10,0)的元素,但我找到了元素(0,10)。我的矩阵似乎是以倒排的列/行顺序存储的。

设置一个像C*Nrows + R这样的索引,并按列访问它就足够了。我试过了,它起作用了,但它与许多博客和帖子相矛盾……

为什么?正常吗?

EN

回答 1

Stack Overflow用户

发布于 2017-05-12 19:48:51

虽然C/C++使用行为主的格式来表示多维数组,但对于其他语言different choices were made,Excel VBA使用列为主的格式并不奇怪,因为this forum question中也有说明。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43935500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档