它循环直到最后一次然后我得到一个错误“尝试访问EQ_NUM(8);索引越界因为 numel(EQ_NUM)= 7“。
N_NODE=8
N_PRE_DISP=2
DISP_NODE= [2 7]
EQ_NUM = 0;
for i = 1:N_PRE_DISP
NODE=DISP_NODE(i);
EQ_NUM(NODE) = -i;
end
ROW = 0;
for i = 1:N_NODE
if (EQ_NUM(i)==0)
ROW = ROW+1;
EQ_NUM(i)=ROW;
end
end
答案 0 :(得分:0)
在这个循环中
EQ_NUM = 0;
for i = 1:N_PRE_DISP
NODE=DISP_NODE(i);
EQ_NUM(NODE) = -i;
end
您使用7个元素创建EQ_NUM
; NODE
所取的最高值是DISP_NODE(1:2)
中7
的最高值。
在这个循环中
ROW = 0;
for i = 1:N_NODE
if (EQ_NUM(i)==0)
ROW = ROW+1;
EQ_NUM(i)=ROW;
end
end
你循环i=1:8
并最终尝试执行EQ_NUM(8)==0
。
你需要修理一些东西,但我不知道是什么。可能你认为Matlab数组是从0开始索引的,它们不是,Matlab数组的第一个索引是1。