作者:陈怡伶翰纬 | 来源:互联网 | 2023-02-05 11:21
我想从2D数组创建一维数组而不使用仅一行代码进行循环,例如:
newvec = oldvec(:,3)
在MATLAB中将从"oldvec"的第3列创建一维数组"newvec".我的搜索告诉我在VBA中执行此操作的唯一方法是循环.例如:
redim newvec(ubound(oldvec,1))
for i = 1 to ubound(oldvec,1)
newvec(i) = oldvec(i,3)
next i
是否有内置构造用于剥离现有2D阵列的整个单一维度以构建新的1D阵列?
1> Tehscript..:
与大多数常见的编程语言不同,VBA中没有用于此目的的内置函数.但是,使用Index函数有一种解决方法:
Application.Index(MultidimArray, Row_Number, Column_Number)
要从源数组中提取列,应将"0"作为row_number参数传递.类似地,要从源数组中提取行,应将"0"作为column_number参数传递.
因此,如果您想从"oldvec"的第3列创建一维数组"newvec":
newvec = Application.Index(oldvec, 0, 3)
在这里你可以找到更多.
编辑:
使用For loop
比使用快得多Index function
.所以你最好坚持下去for loop
.请参阅评论了解详情