这是我第一次使用VB。我大多习惯于在matlab中工作,并发现在matlab中我认为理所当然的东西必须在VB中显式声明。令人沮丧!在Visual Basic中声明数组大小
特别是我需要声明两个数组大小s1和s2。正如你在下面的代码中看到的那样,s1是变量“stratum”等于1的集合“n”中的元素的数量。s2是变量“stratum”等于2的集合“n”中的元素的数量。漂亮直截了当。
我的方法是简单地将层变量1循环到n并计数这些出现次数;然后将结果声明为常量。这会在matlab中运行,但VB不接受s1和s2作为常量。在循环之后插入debug.print命令时,它甚至不会显示s1和s2。
我已浏览已完成的相关帖子。我很欣赏任何建议。谢谢。
Sub TOAinput()
Const n As Integer = 648
Dim stratum(n), hybrid(n), acres(n), hhsz(n), offinc(n)
For i = 1 To n
stratum(i) = Worksheets("hhid level").Cells(i + 1, 2).Value
Next i
Dim s1 As Integer
Dim s2 As Integer
s1 = 0
s2 = 0
For i = 1 To n
If stratum(i) = 1 Then
s1 = s1 + 1
Else:
s2 = s2 + 1
End If
Next i
Dim acres1(s1), hhsz1(s1), offinc1(s1), acres2(s2), hhsz2(s2), offinc2(s2)
(...)
End Sub
昏暗sumac1,sumac2,mhhsz1,mhhsz2,cvhhsz1,cvhhsz2 sumac1 = SUM(acres1) sumac2 = SUM(acres2) mhhsz1 =平均(hhsz1) mhhsz2 =平均(hhsz2) cvhhsz1 = STDEV(hhsz1 )/ Average(hhsz1) cvhhsz2 = StDev(hhsz2)/ Average(hhsz2) – ben
非常感谢。无视我无意中发布的乱码。 – ben