查看: 243|回复: 1|关注: 0

[已答复] 报错索引超出数组边界

[复制链接]

新手

10 麦片

财富积分


050


1

主题

1

帖子

0

最佳答案
发表于 2020-3-30 00:40:57 | 显示全部楼层 |阅读模式
本帖最后由 集团军 于 2020-3-30 00:42 编辑
  1. NM=47;
  2. LL=5;           %联络开关数  
  3. Sb=100;          %MW
  4. Vb=345;       %KV
  5. Zb=Vb^2/Sb;     %ohm
  6. BranchM=[1 1 2 0.0035+i*0.0411  %支路参数矩阵
  7.          2 1 39 0.001+i*0.025
  8.          3 2 3 0.0013+i*0.0151
  9.          4 2 25 0.007+i*0.0086
  10.          5 2 30 0+i*0.0181
  11.          6 3 4 0.0013+i*0.0213
  12.          7 3 18 0.0011+i*0.0133
  13.          8 4 5 0.0008+i*0.0128
  14.          9 4 14 0.0008+i*0.0129
  15.          10 5 6 0.0002+i*0.0026
  16.          11 5 8 0.0008+i*0.0112
  17.          12 6 7 0.0006+i*0.0092
  18.          13 6 11 0.0007+i*0.0082
  19.          14 6 31 0+i*0.025
  20.          15 7 8 0.0004+i*0.0046
  21.          16 8 9 0.0023+i*0.0363
  22.          17 9 39 00.001+i*0.025
  23.          18 10 11 0.0004+i*0.0043
  24.          19 10 13 0.0004+i*0.0043
  25.          20 10 32 0+i*0.02
  26.          21 12 11 0.0016+i*0.0435
  27.          22 12 13 0.0016+i*0.0435
  28.          23 13 14 0.0009+i*0.0101
  29.          24 14 15 0.0018+i*0.0217
  30.          25 15 16 0.0009+i*0.0094
  31.          26 16 17 0.0007+i*0.0089
  32.          27 16 19 0.0016+i*0.0195
  33.          28 16 21 0.0008+i*0.0135
  34.          29 16 24 0.0003+i*0.0059
  35.          30 17 18 0.0007+i*0.0082
  36.          31 17 27 0.0013+i*0.0173
  37.          32 19 20 0.0007+i*0.0138
  38.          33 19 33 0.0007+i*0.0142
  39.          34 20 34 0.0009+i*0.018
  40.          35 21 22 0.0008+i*0.014
  41.          36 22 23 0.0006+i*0.0096
  42.          37 22 35 0+i*0.0143
  43.          38 23 24 0+i*0.0143
  44.          39 23 36 0.0005+i*0.0272
  45.          40 25 26 0.0032+i*0.0323
  46.          41 25 37 0.0006+i*0.0232
  47.          42 26 27 0.0014+i*0.0147
  48.          43 26 28 0.0043+i*0.0474
  49.          44 26 29 0.0057+i*0.0625
  50.          45 28 29 0.0014+i*0.0151
  51.          46 29 38 0.0008+i*0.0156];
  52. NodeM=[1 0.0976+i*0.0442
  53.        2 0                        %节点参数矩阵(电源节点负荷为0)
  54.        3 0.322+i*0.0024
  55.        4 0.500+i*0.184
  56.        5 0
  57.        6 0
  58.        7 0.2338+i*0.084
  59.        8 0.522+i*0.1766
  60.        9 0.0065+i*(-0.0666)
  61.        10 0
  62.        11 0
  63.        12 0.00853+i*0.088
  64.        13 0
  65.        14 0
  66.        15 0.320+i*0.153
  67.        16 0.329+i*0.0323
  68.        17 0
  69.        18 0.158+i*0.030
  70.        19 0
  71.        20 0.680+i*0.103
  72.        21 0.274+i*0.115
  73.        22 0
  74.        23 0.2475+i*0.0846
  75.        24 0.3086+i*(-0.0922)
  76.        25 0.224+i*0.0472
  77.        26 0.139+i*0.017
  78.        27 0.281+i*0.0755
  79.        28 0.206+i*0.0276
  80.        29 0.2835+i*0.0269
  81.        30 0
  82.        31 0.0092+i*0.0046
  83.        32 0
  84.        33 0
  85.        36 0
  86.        37 0
  87.        38 0
  88.        39 0.002+i*1.104
  89. ];
  90. BranchM(:,4)=BranchM(:,4)/Zb; %阻抗标幺化
  91. NodeM(:,2)=NodeM(:,2)/Sb; %功率标幺化

  92. NodeN=zeros(NM);   %节点-节点关联矩阵NodeN
  93. for i1=1:NM-1
  94.     NodeN(BranchM(i1,2),BranchM(i1,3))=1;
  95.     NodeN(BranchM(i1,3),BranchM(i1,2))=1;
  96. end

  97. LayerM=[1];      %节点分层矩阵,电源节点号记“1”
  98. NU=zeros(1,NM);   %上层节点矩阵(有33列的行矩阵)

  99. %以下用循环求取矩阵LayerM和NU
  100. h=1;
  101. while(min(NU(2:47)~=0)==0) %NU矩阵的2-最后都有上层节点了,表示循环结束了
  102. NZ=find(LayerM(:,h), 1, 'last' );  %NZ为矩阵LayerM第h列非零元素的个数
  103. k=1;
  104. for i=1:NZ     
  105.     g=LayerM(i,h);           %LayerM的第i行第h列元素
  106.     ss=find(NodeN(g,:)==1);
  107.     n=size(ss,2);      %ss矩阵的列数
  108.        for j=1:n
  109.         if LayerM~=ss(1,j)   %排除相同节点
  110.            LayerM(k,h+1)=ss(1,j);
  111.            NU(1,ss(1,j))=g;
  112.            k=k+1;             %k表示第h层含有的节点数
  113.         end
  114.        end
  115. end
  116. h=h+1;                     %h表示网络分层的层数
  117. end
复制代码
位置 2 处的索引超出数组边界(不能超出 9)。

出错 case39juzhen (line 105)
NZ=find(LayerM(:,h), 1, 'last' );  %NZ为矩阵LayerM第h列非零元素的个数

回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

中级

632 麦片

财富积分


5001500


22

主题

955

帖子

106

最佳答案
  • 关注者: 9
发表于 2020-3-30 08:42:42 | 显示全部楼层
NZ=find(LayerM(:,h), 1, 'last' );  %NZ为矩阵LayerM第h列非零元素的个数
find(LayerM(:,h), 1, 'last' )没用过用法,如果%NZ为矩阵LayerM第h列非零元素的个数
NA =fins(LayerM(:,h)~=0),岂不更好
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表