找回密码
 加入
搜索
查看: 1791|回复: 5

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

[复制链接]
发表于 2016-11-8 10:09:13 | 显示全部楼层 |阅读模式
本帖最后由 cashiba 于 2017-3-18 09:34 编辑

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

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

_ArrayDisplay($aArrayTarget, "1D 目标")
_ArrayDisplay($aArraySource, "1D 源")
_ArrayConcatenate($aArrayTarget, $aArraySource)
_ArrayDisplay($aArrayTarget, "1D 目标和源连接")
发表于 2016-11-9 16:04:51 | 显示全部楼层
要自己写,简单示例
#include <Array.au3>

Local $aArrayTarget[5] = ["0", "1", "2", "3", "4"]
Local $aArraySource[5] = ["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][2]
        For $i = 0 To $n-1
                $arr3[$i][0] = $arr1[$i]
                $arr3[$i][1] = $arr2[$i]
        Next
        Return $arr3
EndFunc
 楼主| 发表于 2016-11-10 10:23:54 | 显示全部楼层
要自己写,简单示例
komaau3 发表于 2016-11-9 16:04

对AU3略懂皮毛,还不会自己写数组函数,前阵还在问AU3里有没有动态数组的问题呢
再说自己写的函数通用性太差阿....
对数组的一些自定义函数还不熟悉,以为有那个函数可以做到这些呢,所以问一下达人们....

1、几个一维数组并列合并成一个二维数组
2、或一个一维数组并列合并到一个二维数组里
3、或两个二维数组并列合并
短于最大下标的,用空值或nul填充
也就是说横向合并数组。看了一下,目前的自定义函数里好像只有串行或纵向合并的
 楼主| 发表于 2016-11-10 10:27:19 | 显示全部楼层
Ruby的内置数组函数很丰富,这样的问题就不是问题阿,可惜不会调用,而且也不知道调用Ruby的代码编译后能不能正常运行....
发表于 2016-11-10 11:46:13 | 显示全部楼层
回复 4# cashiba

redim
 楼主| 发表于 2016-11-10 12:57:40 | 显示全部楼层
回复  cashiba
redim
komaau3 发表于 2016-11-10 11:46

对vb了解的比AU3多,所以才会有动态数组与静态数组的概念,redim和preserve在VB里构造动态数组时经常用....
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-27 08:20 , Processed in 0.085024 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表