返回列表 上一主題 發帖

[分享] 不受2^16限制的函數transpose

[分享] 不受2^16限制的函數transpose

'''''arr無論是1維或2維,下界無論是0或1,都可以轉置成2維下界是1的array
''''取代transpose函數不再受阻于2^16限制,大家參考,希望大大們指教.

Function mytranspose(Arr)
    Dim k%, x, y, Brr
    k = IIf(LBound(Arr) = 0, 1, 0) ''''區分arr下界是0是1
    On Error Resume Next
    x = UBound(Arr, 2)
    On Error GoTo 0
    If IsEmpty(x) Then ''''''''''''''''''''''''1維
        ReDim Brr(1 To UBound(Arr) + k, 1 To 1)
        For i = 1 To UBound(Arr)
            Brr(i, 1) = Arr(i - k)
        Next i
    Else '''''''''''''''''''''''''''''''''''''''2維
        x = UBound(Arr, 2)
        y = UBound(Arr, 1)
        ReDim Brr(1 To x + k, 1 To y + k)
        
        For i = 1 To x + k
            For j = 1 To y + k
                Brr(i, j) = Arr(j - k, i - k)
            Next j
        Next i
    End If
   
    mytranspose = Brr

End Function
lmh

        靜思自在 : 待人退一步,愛人寬一寸,就會活得很快樂。
返回列表 上一主題