cashiba 发表于 2016-11-8 10:09:13

有没有合并多个一维数组变成二维数组的自定义函数?[已解决]

本帖最后由 cashiba 于 2017-3-18 09:34 编辑

想把两个或多个一维数组并成二维数组,也就是每个一维数组成为新二维数组的一个列
或者把某个一维数组添加到某个二维数组的某列前或后
类似的自定义函数好像只有_ArrayCombinations,但最终效果是线性连接成一维数组
#include <Array.au3>

Local $aArrayTarget = ["0", "1", "2", "3", "4"]
Local $aArraySource = ["5", "6", "7", "8", "9"]

_ArrayDisplay($aArrayTarget, "1D 目标")
_ArrayDisplay($aArraySource, "1D 源")
_ArrayConcatenate($aArrayTarget, $aArraySource)
_ArrayDisplay($aArrayTarget, "1D 目标和源连接")

komaau3 发表于 2016-11-9 16:04:51

要自己写,简单示例#include <Array.au3>

Local $aArrayTarget = ["0", "1", "2", "3", "4"]
Local $aArraySource = ["5", "6", "7", "8", "9"]

$arr = _arrayto2d($aArrayTarget, $aArraySource)
If Not @error Then _ArrayDisplay($arr)

Func _arrayto2d($arr1, $arr2)
        Local $n = UBound($arr1)
        If $n <> UBound($arr2) Then Return SetError(1)
        Dim $arr3[$n]
        For $i = 0 To $n-1
                $arr3[$i] = $arr1[$i]
                $arr3[$i] = $arr2[$i]
        Next
        Return $arr3
EndFunc

cashiba 发表于 2016-11-10 10:23:54

要自己写,简单示例
komaau3 发表于 2016-11-9 16:04 http://www.autoitx.com/images/common/back.gif
对AU3略懂皮毛,还不会自己写数组函数,前阵还在问AU3里有没有动态数组的问题呢
再说自己写的函数通用性太差阿....
对数组的一些自定义函数还不熟悉,以为有那个函数可以做到这些呢,所以问一下达人们....

1、几个一维数组并列合并成一个二维数组
2、或一个一维数组并列合并到一个二维数组里
3、或两个二维数组并列合并
短于最大下标的,用空值或nul填充
也就是说横向合并数组。看了一下,目前的自定义函数里好像只有串行或纵向合并的

cashiba 发表于 2016-11-10 10:27:19

Ruby的内置数组函数很丰富,这样的问题就不是问题阿,可惜不会调用,而且也不知道调用Ruby的代码编译后能不能正常运行....

komaau3 发表于 2016-11-10 11:46:13

回复 4# cashiba

redim

cashiba 发表于 2016-11-10 12:57:40

回复cashiba
redim
komaau3 发表于 2016-11-10 11:46 http://www.autoitx.com/images/common/back.gif
对vb了解的比AU3多,所以才会有动态数组与静态数组的概念,redim和preserve在VB里构造动态数组时经常用....
页: [1]
查看完整版本: 有没有合并多个一维数组变成二维数组的自定义函数?[已解决]