热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

剥离列或行以生成一维数组

如何解决《剥离列或行以生成一维数组》经验,为你挑选了1个好方法。

我想从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.请参阅评论了解详情


推荐阅读
author-avatar
陈怡伶翰纬
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有