2017-07-18 1 views
0

Ich versuche, ein Skript zu erstellen, das eine einzelne Spalte aus einem zweidimensionalen Array zurückgibt, das als Daten zum Zeichnen verschiedener Dinge in Rhino verwendet werden würde. Ich stoße jedoch immer auf einen Fehler, wenn ich versuche, dies zu tun, und ich kann nicht herausfinden, was mit meinem Code falsch ist. Ich habe meine aktuelle Funktion im Folgenden wiedergegeben:Eine einzelne Spalte aus einem 2D-Array zurückgeben?

Function ReturnColumn(ByVal col, ByVal array) 

Dim colsize, i 
colsize = UBound(array, 1) 

ReDim vector(colsize) 

For i = 0 To colsize 
    vector(i) = array(i, col) 
Next 

ReturnColumn = vector 
End Function 

Dies ist eine sehr einfache Funktion sein soll, aus irgendeinem Grunde, aber ich kann es nicht zu arbeiten. Jede Hilfe wird geschätzt, danke!

Antwort

0

Ich glaube, Sie müssen Ihre Array-Variable mit Dim deklarieren, bevor Sie es redimensionieren. Darüber hinaus kann array als Variablenname Probleme verursachen, da es ein reserviertes Schlüsselwort ist. Verwendung z.B. matrix:

Function ReturnColumn(ByVal col, ByVal matrix) 
    ' Declare variables 
    Dim colsize As Integer 
    Dim i As Integer 
    Dim vector() As Integer 

    ' Redimension the array to the size of the column 
    colsize = UBound(matrix, 1) 
    ReDim vector(colsize) 

    ' Fill the array 
    For i = 0 To colsize 
    vector(i) = matrix(i, col) 
    Next 

    ' Return the array 
    ReturnColumn = vector 
End Function 

Die documentation sagt (Hervorhebung von mir):

Die ReDim Anweisung Größe verwendet wird, oder ein dynamisches Array der Größe, dass bereits mit einem Private, formell erklärt wurde Public oder Dim Anweisung mit leeren Klammern (ohne Dimensionsindex).

Verwandte Themen