嵌套For循环没有到达我的矩阵的末尾

时间:2013-11-12 14:26:28

标签: matlab for-loop matrix indexing nested

我使用嵌套的for循环来执行以下功能: 我将在TranLog矩阵(W X N大小)中逐列,并找到哪一行具有非零值 基于TranLog中此非零值的行位置,我在矩阵Order中调用与该行#相关联的向量。

for循环如下:

for jj=1:W;
    for ii=1:N;
        if TranLog(ii,jj)>0.5
            test=Order(ii,:);
        end
    end
end 

当我运行时,矢量输出的数量小于它应该的数量。例如:如果Tranlog为23X5且Order为23X6,如果在整个TranLog矩阵中有23个非零遍布(TranLog中每行有一个非零值),我只从Order矩阵中获得13个输出向量。我不确定为什么这没有运行完成,我没有收到错误,但它没有输出尽可能多的向量。

1 个答案:

答案 0 :(得分:0)

这就是问题所在。您的矩阵有 W 行和 N 列,但 W 索引 jj 是索引列而不是行在第3行中,与 ii N 的索引相反。切换那些,你应该好好去!

for jj=1:W;
    for ii=1:N;
        if TranLog(jj,ii)>0.5
            test=Order(ii,:);
        end
    end
end