在Matlab中不使用嵌套循环的情况下如何对矩阵的所有元素施加条件

时间:2018-07-10 05:13:57

标签: matlab

我想在代码中应用if条件而不使用循环。请建议

BC=[1 0 5 -1 0 ];
for j=1:N_Nodes
    if BC(j)>0
        for k=1:N_Nodes                            
            if  BC(k)==0 && dist(j,k)<CS_Range && NAV(j)<packetlength
                  NAV(j)=packetlength;      
            end 
        end
    end
end

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,则您希望将NAV的每个元素都设置为数据包长度,如果BC均为0并且当前NAV小于数据包长度。同样,此操作的范围应最大为CS_RANGE。假设N_Nodes等于BC的长度且等于NAV的长度(5),则可以使用布尔运算:

NAV(BC==0 & NAV<packetlength) = packetlength

由于数据包长度在此过程中没有变化,因此无论如何都可以省略外循环,因此不需要任何距离边界。

如果这不能回答您的问题,请在代码中定义未定义的参数。