标题:用循环给矩阵赋值为何是空值
只看楼主
小麦哥
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2018-3-14
结帖率:50%
已结贴  问题点数:10 回复次数:7 
用循环给矩阵赋值为何是空值
Option Base 1

Private Sub Form_Click()
 Dim L(21, 21) As Variant
    L(1, 1) = 1
    L(1, 2) = 0.97164
    L(1, 3) = 0.960644
    L(1, 4) = 1
    L(1, 5) = 0.994635
    L(1, 6) = 0.708218
    L(1, 7) = 0.931484
    L(1, 8) = 1.17052
    L(1, 9) = 0.990126
    L(1, 10) = 1
    L(1, 11) = 1.01953
    L(1, 12) = 0.989844
    L(1, 13) = 1.00235
    L(1, 14) = 0.999268
    L(1, 15) = 1.107274
    L(1, 16) = 0.88088
    L(1, 17) = 0.880973
    L(1, 18) = 0.881067
    L(1, 19) = 0.881161
    L(1, 20) = 1
    L(1, 21) = 1
    L(2, 1) = 0.97164
    L(2, 2) = 1
    L(2, 3) = 1.02274
    L(2, 4) = 0.97012
    L(2, 5) = 0.945939
    L(2, 6) = 0.746954
    L(2, 7) = 0.902271
    L(2, 8) = 1.08632
    L(2, 9) = 1.00571
    L(2, 10) = 1.021
    L(2, 11) = 0.946914
    L(2, 12) = 0.973384
    L(2, 13) = 0.95934
    L(2, 14) = 0.94552
    L(2, 15) = 1
    L(2, 16) = 1
    L(2, 17) = 1
    L(2, 18) = 1
    L(2, 19) = 1
    L(2, 20) = 1
    L(2, 21) = 1
    L(3, 1) = 0.960644
    L(3, 2) = 1.02274
    L(3, 3) = 1
    L(3, 4) = 0.925053
    L(3, 5) = 0.960237
    L(3, 6) = 0.849408
    L(3, 7) = 0.955052
    L(3, 8) = 1.28179
    L(3, 9) = 1.5
    L(3, 10) = 1
    L(3, 11) = 0.906849
    L(3, 12) = 0.897362
    L(3, 13) = 0.726255
    L(3, 14) = 0.859764
    L(3, 15) = 0.855134
    L(3, 16) = 0.831229
    L(3, 17) = 0.80831
    L(3, 18) = 0.786323
    L(3, 19) = 0.765171
    L(3, 20) = 1
    L(3, 21) = 1
    L(4, 1) = 1
    L(4, 2) = 0.97012
    L(4, 3) = 0.925053
    L(4, 4) = 1
    L(4, 5) = 1.02256
    L(4, 6) = 0.693168
    L(4, 7) = 0.946871
    L(4, 8) = 1.16446
    L(4, 9) = 1
    L(4, 10) = 1
    L(4, 11) = 1
    L(4, 12) = 1.01306
    L(4, 13) = 1
    L(4, 14) = 1.00532
    L(4, 15) = 1
    L(4, 16) = 1
    L(4, 17) = 1
    L(4, 18) = 1
    L(4, 19) = 1
    L(4, 20) = 1
    L(4, 21) = 1
    L(5, 1) = 0.994635
    L(5, 2) = 0.945939
    L(5, 3) = 0.960237
    L(5, 4) = 1.02256
    L(5, 5) = 1
    L(5, 6) = 1
    L(5, 7) = 1
    L(5, 8) = 1.034787
    L(5, 9) = 1
    L(5, 10) = 1
    L(5, 11) = 1
    L(5, 12) = 1.0049
    L(5, 13) = 1
    L(5, 14) = 1
    L(5, 15) = 1
    L(5, 16) = 1
    L(5, 17) = 1
    L(5, 18) = 1
    L(5, 19) = 1
    L(5, 20) = 1
    L(5, 21) = 1
    L(6, 1) = 0.708218
    L(6, 2) = 0.746954
    L(6, 3) = 0.849408
    L(6, 4) = 0.693168
    L(6, 5) = 1
    L(6, 6) = 1
    L(6, 7) = 1
    L(6, 8) = 1
    L(6, 9) = 1
    L(6, 10) = 1
    L(6, 11) = 1
    L(6, 12) = 1
    L(6, 13) = 1
    L(6, 14) = 1
    L(6, 15) = 1
    L(6, 16) = 1
    L(6, 17) = 1
    L(6, 18) = 1
    L(6, 19) = 1
    L(6, 20) = 1
    L(6, 21) = 1
    L(7, 1) = 0.931484
    L(7, 2) = 0.902271
    L(7, 3) = 0.955052
    L(7, 4) = 0.946871
    L(7, 5) = 1
    L(7, 6) = 1
    L(7, 7) = 1
    L(7, 8) = 1
    L(7, 9) = 1
    L(7, 10) = 1
    L(7, 11) = 1
    L(7, 12) = 1
    L(7, 13) = 1
    L(7, 14) = 1
    L(7, 15) = 1.008692
    L(7, 16) = 1.010126
    L(7, 17) = 1.011501
    L(7, 18) = 1.012821
    L(7, 19) = 1.014089
    L(7, 20) = 1
    L(7, 21) = 1
    L(8, 1) = 1.17052
    L(8, 2) = 1.08632
    L(8, 3) = 1.28179
    L(8, 4) = 1.16446
    L(8, 5) = 1.034787
    L(8, 6) = 1
    L(8, 7) = 1
    L(8, 8) = 1
    L(8, 9) = 1.1
    L(8, 10) = 1
    L(8, 11) = 1.3
    L(8, 12) = 1.3
    L(8, 13) = 1
    L(8, 14) = 1
    L(8, 15) = 1
    L(8, 16) = 1
    L(8, 17) = 1
    L(8, 18) = 1
    L(8, 19) = 1
    L(8, 20) = 1
    L(8, 21) = 1
    L(9, 1) = 1
    L(9, 2) = 1
    L(9, 3) = 1
    L(9, 4) = 1
    L(9, 5) = 1
    L(9, 6) = 1
    L(9, 7) = 1
    L(9, 8) = 1
    L(9, 9) = 1
    L(9, 10) = 1
    L(9, 11) = 1
    L(9, 12) = 1
    L(9, 13) = 1
    L(9, 14) = 1
    L(9, 15) = 1
    L(9, 16) = 1
    L(9, 17) = 1
    L(9, 18) = 1
    L(9, 19) = 1
    L(9, 20) = 1
    L(9, 21) = 1
    L(10, 1) = 1
    L(10, 2) = 1
    L(10, 3) = 1
    L(10, 4) = 1
    L(10, 5) = 1
    L(10, 6) = 1
    L(10, 7) = 1
    L(10, 8) = 1
    L(10, 9) = 1
    L(10, 10) = 1
    L(10, 11) = 1
    L(10, 12) = 1
    L(10, 13) = 1
    L(10, 14) = 1
    L(10, 15) = 1
    L(10, 16) = 1
    L(10, 17) = 1
    L(10, 18) = 1
    L(10, 19) = 1
    L(10, 20) = 1
    L(10, 21) = 1
    L(11, 1) = 1
    L(11, 2) = 1
    L(11, 3) = 1
    L(11, 4) = 1
    L(11, 5) = 1
    L(11, 6) = 1
    L(11, 7) = 1
    L(11, 8) = 1
    L(11, 9) = 1
    L(11, 10) = 1
    L(11, 11) = 1
    L(11, 12) = 1
    L(11, 13) = 1
    L(11, 14) = 1
    L(11, 15) = 1
    L(11, 16) = 1
    L(11, 17) = 1
    L(11, 18) = 1
    L(11, 19) = 1
    L(11, 20) = 1
    L(11, 21) = 1
    L(12, 1) = 1
    L(12, 2) = 1
    L(12, 3) = 1
    L(12, 4) = 1
    L(12, 5) = 1
    L(12, 6) = 1
    L(12, 7) = 1
    L(12, 8) = 1
    L(12, 9) = 1
    L(12, 10) = 1
    L(12, 11) = 1
    L(12, 12) = 1
    L(12, 13) = 1
    L(12, 14) = 1
    L(12, 15) = 1
    L(12, 16) = 1
    L(12, 17) = 1
    L(12, 18) = 1
    L(12, 19) = 1
    L(12, 20) = 1
    L(12, 21) = 1
    L(13, 1) = 1
    L(13, 2) = 1
    L(13, 3) = 1
    L(13, 4) = 1
    L(13, 5) = 1
    L(13, 6) = 1
    L(13, 7) = 1
    L(13, 8) = 1
    L(13, 9) = 1
    L(13, 10) = 1
    L(13, 11) = 1
    L(13, 12) = 1
    L(13, 13) = 1
    L(13, 14) = 1
    L(13, 15) = 1
    L(13, 16) = 1
    L(13, 17) = 1
    L(13, 18) = 1
    L(13, 19) = 1
    L(13, 20) = 1
    L(13, 21) = 1
    L(14, 1) = 1
    L(14, 2) = 1
    L(14, 3) = 1
    L(14, 4) = 1
    L(14, 5) = 1
    L(14, 6) = 1
    L(14, 7) = 1
    L(14, 8) = 1
    L(14, 9) = 1
    L(14, 10) = 1
    L(14, 11) = 1
    L(14, 12) = 1
    L(14, 13) = 1
    L(14, 14) = 1
    L(14, 15) = 1
    L(14, 16) = 1
    L(14, 17) = 1
    L(14, 18) = 1
    L(14, 19) = 1
    L(14, 20) = 1
    L(14, 21) = 1
    L(15, 1) = 1
    L(15, 2) = 1
    L(15, 3) = 1
    L(15, 4) = 1
    L(15, 5) = 1
    L(15, 6) = 1
    L(15, 7) = 1
    L(15, 8) = 1
    L(15, 9) = 1
    L(15, 10) = 1
    L(15, 11) = 1
    L(15, 12) = 1
    L(15, 13) = 1
    L(15, 14) = 1
    L(15, 15) = 1
    L(15, 16) = 1
    L(15, 17) = 1
    L(15, 18) = 1
    L(15, 19) = 1
    L(15, 20) = 1
    L(15, 21) = 1
    L(16, 1) = 1
    L(16, 2) = 1
    L(16, 3) = 1
    L(16, 4) = 1
    L(16, 5) = 1
    L(16, 6) = 1
    L(16, 7) = 1
    L(16, 8) = 1
    L(16, 9) = 1
    L(16, 10) = 1
    L(16, 11) = 1
    L(16, 12) = 1
    L(16, 13) = 1
    L(16, 14) = 1
    L(16, 15) = 1
    L(16, 16) = 1
    L(16, 17) = 1
    L(16, 18) = 1
    L(16, 19) = 1
    L(16, 20) = 1
    L(16, 21) = 1
    L(17, 1) = 1
    L(17, 2) = 1
    L(17, 3) = 1
    L(17, 4) = 1
    L(17, 5) = 1
    L(17, 6) = 1
    L(17, 7) = 1
    L(17, 8) = 1
    L(17, 9) = 1
    L(17, 10) = 1
    L(17, 11) = 1
    L(17, 12) = 1
    L(17, 13) = 1
    L(17, 14) = 1
    L(17, 15) = 1
    L(17, 16) = 1
    L(17, 17) = 1
    L(17, 18) = 1
    L(17, 19) = 1
    L(17, 20) = 1
    L(17, 21) = 1
    L(18, 1) = 1
    L(18, 2) = 1
    L(18, 3) = 1
    L(18, 4) = 1
    L(18, 5) = 1
    L(18, 6) = 1
    L(18, 7) = 1
    L(18, 8) = 1
    L(18, 9) = 1
    L(18, 10) = 1
    L(18, 11) = 1
    L(18, 12) = 1
    L(18, 13) = 1
    L(18, 14) = 1
    L(18, 15) = 1
    L(18, 16) = 1
    L(18, 17) = 1
    L(18, 18) = 1
    L(18, 19) = 1
    L(18, 20) = 1
    L(18, 21) = 1
    L(19, 1) = 1
    L(19, 2) = 1
    L(19, 3) = 1
    L(19, 4) = 1
    L(19, 5) = 1
    L(19, 6) = 1
    L(19, 7) = 1
    L(19, 8) = 1
    L(19, 9) = 1
    L(19, 10) = 1
    L(19, 11) = 1
    L(19, 12) = 1
    L(19, 13) = 1
    L(19, 14) = 1
    L(19, 15) = 1
    L(19, 16) = 1
    L(19, 17) = 1
    L(19, 18) = 1
    L(19, 19) = 1
    L(19, 20) = 1
    L(19, 21) = 1
    L(20, 1) = 1
    L(20, 2) = 1
    L(20, 3) = 1
    L(20, 4) = 1
    L(20, 5) = 1
    L(20, 6) = 1
    L(20, 7) = 1
    L(20, 8) = 1
    L(20, 9) = 1
    L(20, 10) = 1
    L(20, 11) = 1
    L(20, 12) = 1
    L(20, 13) = 1
    L(20, 14) = 1
    L(20, 15) = 1
    L(20, 16) = 1
    L(20, 17) = 1
    L(20, 18) = 1
    L(20, 19) = 1
    L(20, 20) = 1
    L(20, 21) = 1
    L(21, 1) = 1
    L(21, 2) = 1
    L(21, 3) = 1
    L(21, 4) = 1
    L(21, 5) = 1
    L(21, 6) = 1
    L(21, 7) = 1
    L(21, 8) = 1
    L(21, 9) = 1
    L(21, 10) = 1
    L(21, 11) = 1
    L(21, 12) = 1
    L(21, 13) = 1
    L(21, 14) = 1
    L(21, 15) = 1
    L(21, 16) = 1
    L(21, 17) = 1
    L(21, 18) = 1
    L(21, 19) = 1
    L(21, 20) = 1
    L(21, 21) = 1
Dim AE As Variant
 AE = Array(151.3183, 99.73778, 241.9606, 244.1667, 298.1183, 514.0156, 296.355, 26.95794, 105.5348, 122.7667, 324.0689, 337.6389, 365.5999, 370.6823, 402.636293, 427.72263, 450.325022, 470.840891, 489.558373, 2.610111, 119.6299) '能量参数
Dim ABC(21, 21) As Variant, i%, j%
For i = 1 To 21
 For j = i To 21
 ABC(i, j) = (AE(i) * AE(j)) ^ (1 / 2)
   Next j
  Next i
End Sub
搜索更多相关主题的帖子: 循环 矩阵 赋值 空值 Dim 
2018-05-02 17:55
wufuzhang
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:贵宾
威 望:21
帖 子:206
专家分:1346
注 册:2017-8-9
得分:0 
回复 楼主 小麦哥
我运行你的代码,按F8单步执行,都有计算结果的:

这个窗口的数据是实时更新的,你如果直接按F5执行,
是看不到结果的,要单步执行才能看到。

不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2018-05-03 15:01
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:0 
把语句“Dim ABC(21, 21) As Variant”放到最最最前面。

能编个毛线衣吗?
2018-05-03 15:17
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:0 
AE下标为0-20,所以循环变量改一下,否则最后的下标超限。

Private Sub Command1_Click()
Dim AE As Variant
 AE = Array(151.3183, 99.73778, 241.9606, 244.1667, 298.1183, 514.0156, 296.355, 26.95794, 105.5348, 122.7667, 324.0689, 337.6389, 365.5999, 370.6823, 402.636293, 427.72263, 450.325022, 470.840891, 489.558373, 2.610111, 119.6299) '能量参数
Dim ABC(21, 21) As Variant, i%, j%
k = 0
For i = 0 To 20
 For j = i To 20
 k = k + 1
 ABC(i, j) = (AE(i) * AE(j)) ^ (1 / 2): Debug.Print k, ABC(i, j)
   Next j
  Next i
End Sub
贴出前20的值
 1             151.3183
 2             122.850117278633
 3             191.345411909928
 4             192.215738066918
 5             212.39292444639
 6             278.890599994837
 7             211.763865653468
 8             63.8688472755067
 9             126.369879824427
 10            136.296912439754
 11            221.444248132278
 12            226.033060329391
 13            235.206197512247
 14            236.835418542265
 15            246.832411516522
 16            254.405702064889
 17            261.041025083228
 18            266.921043000745
 19            272.174834900521
 20            19.8735391747746
 
2018-05-03 15:21
小麦哥
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2018-3-14
得分:0 
回复 4楼 wds1
前面加了 option base 1,下标不是从1开始了吗
2018-05-04 16:04
小麦哥
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2018-3-14
得分:0 
回复 3楼 wmf2014
这个有什么区别吗,新手不太懂
2018-05-04 16:10
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
以下是引用小麦哥在2018-5-4 16:04:59的发言:

前面加了 option base 1,下标不是从1开始了吗

这个你是
是对的。

授人于鱼,不如授人于渔
早已停用QQ了
2018-05-04 16:11
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:10 
把语句“Dim ABC(21, 21) As Variant”放到最最最前面。

表示把这个数组定义为窗体全局变量,在窗体范围之内都可见,可用其值。
一般在一个窗体范围内多个过程(函数)之间均需要使用的变量,建议使用这种的定义方式。

授人于鱼,不如授人于渔
早已停用QQ了
2018-05-04 16:13



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-486567-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.800736 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved