类 MWSparse
MWSparse 类将二维稀疏数值数组传递到已编译的类方法中或从已编译的类方法中接收二维稀疏数值数组。该类有七个属性/方法:
Property NumRows As Long
存储数组的行维数。NumRows 的值必须非负。如果值为零,则行索引取自 RowIndex 数组中的最大值。
Property NumColumns As Long
存储数组的列维数。NumColumns 的值必须非负。如果值为零,则行索引取自 ColumnIndex 数组中的最大值。
Property RowIndex As Variant
存储数组中非零元素的行索引数组。此属性的值可以是任何可强制转换为 Variant 类型,也可以是对象类型,但限制是底层数组必须解析为或可强制转换为 Long 类型的数字矩阵。如果 NumRows 的值非零且任何行索引大于 NumRows,则会发生坏索引错误。如果 RowIndex 数组中的元素数量与 Array 属性的基础数组中的元素数量不匹配,也会导致错误。
Property ColumnIndex As Variant
存储数组中非零元素的列索引数组。此属性的值可以是任何可强制转换为 Variant 类型,也可以是对象类型,但限制是底层数组必须解析为或可强制转换为 Long 类型的数字矩阵。如果 NumColumns 的值非零且任何列索引大于 NumColumns,则会发生坏索引错误。如果 ColumnIndex 数组中的元素数量与 Array 属性的基础数组中的元素数量不匹配,也会导致错误。
Property Array As Variant
存储稀疏数组的非零数组值。此属性的值可以是任何可强制转换为 Variant 类型,也可以是对象类型,但限制是底层数组必须解析为或可强制转换为 Double 或 Boolean 类型的数字矩阵。
Property MWFlags As MWFlags
存储对 MWFlags 对象的引用。此属性设置或获取特定稀疏数组的数组格式和数据转换标志。每个 MWSparse 对象都有自己的 MWFlags 属性。此属性会覆盖调用其方法的对象上设置的任何标志的值。
Sub Clone(ppSparse As MWSparse)
创建 MWSparse 对象的副本。
参数
| 参量 | 类型 | 描述 |
|---|---|---|
|
|
| 引用未初始化的 |
返回值
无。
备注
Clone 会分配一个新的 MWSparse 对象,并创建该对象内容的深层副本。在需要单独的对象而不是现有对象引用的共享副本时,请调用此函数。
示例
以下 Visual Basic® 示例创建一个 5×5 的三对角稀疏数组。
X = [ 2 -1 0 0 0
-1 2 -1 0 0
0 -1 2 -1 0
0 0 -1 2 -1
0 0 0 -1 2 ]
Sub foo()
Dim x As MWSparse
Dim rows(1 To 13) As Long
Dim cols(1 To 13) As Long
Dim vals(1 To 13) As Double
Dim I As Long, K As Long
On Error GoTo Handle_Error
K = 1
For I = 1 To 4
rows(K) = I
cols(K) = I + 1
vals(K) = -1
K = K + 1
rows(K) = I
cols(K) = I
vals(K) = 2
K = K + 1
rows(K) = I + 1
cols(K) = I
vals(K) = -1
K = K + 1
Next
rows(K) = 5
cols(K) = 5
vals(K) = 2
Set x = New MWSparse
x.NumRows = 5
x.NumColumns = 5
x.RowIndex = rows
x.ColumnIndex = cols
x.Array = vals
.
.
.
Exit Sub
Handle_Error:
MsgBox (Err.Description)
End Sub