复制循环中新矩阵中的某些行

时间:2013-09-26 23:08:54

标签: matlab matrix vectorization

我正在尝试根据一个特征在较小的矩阵中拆分矩阵(我使用'if')。

   for jj = 1:length(FailureHoopUP_sorted)
    if FailureHoopUP_sorted(jj,1)==20
        FailureHoopUP_20(jj,:) = FailureHoopUP_sorted(jj,:);
    elseif FailureHoopUP_sorted(jj,1)==30
        FailureHoopUP_30(jj,:) = FailureHoopUP_sorted(jj,:);
    else
        FailureHoopUP_40(jj,:) = FailureHoopUP_sorted(jj,:);
    end
   end

我遇到的问题是,在新创建的矩阵中的数据行之间存在行的零行。 我想知道我怎么能避免这个?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您不需要循环,可以使用逻辑索引。例如:

FailureHoopUP_20=FailureHoopUP_sorted(FailureHoopUP_sorted(:,1)==20,:)
...
...    

这也应该解决零问题(这是因为你保留了与jj的长度相关的原始索引FailureHoopUP_sorted。)