gpt4 book ai didi

arrays - 剥离列或行以形成一维数组

转载 作者:行者123 更新时间:2023-12-02 07:03:30 25 4
gpt4 key购买 nike

我想从 2D 数组创建 1D 数组,而无需仅使用 1 行代码进行循环,例如:

newvec = oldvec(:,3)

在 MATLAB 中,它将从“oldvec”的第三列创建一个一维数组“newvec”。我的搜索告诉我,在 VBA 中执行此操作的唯一方法是循环。例如:

redim newvec(ubound(oldvec,1))
for i = 1 to ubound(oldvec,1)
newvec(i) = oldvec(i,3)
next i

是否有内置构造可以剥离现有二维数组的整个奇异维度来构建新的一维数组?

最佳答案

与大多数常见的编程语言不同,VBA 中没有用于此目的的内置函数。但是,有一个使用 Index 函数的解决方法:

Application.Index(MultidimArray, Row_Number, Column_Number)

To extract a column from the source array, ‘0’ should be passed as row_number argument. Similarly, to extract a row from source array, ‘0’ should be passed as column_number argument.

因此,如果您想从“oldvec”的第三列创建一维数组“newvec”:

newvec = Application.Index(oldvec, 0, 3)

Here您可以找到更多。

编辑:

使用For循环比使用Index函数快得多。所以你最好坚持使用for循环。详情请参阅评论。

关于arrays - 剥离列或行以形成一维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43706522/

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