1

它循环直到最后一次,然后我收到一个错误“尝试访问 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 
4

1 回答 1

0

在这个循环中

EQ_NUM = 0;
for i = 1:N_PRE_DISP 
    NODE=DISP_NODE(i);
    EQ_NUM(NODE) = -i;
end

EQ_NUM用 7 个元素创建;取的最大值是中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。

于 2013-02-14T11:04:46.673 回答