如何对矩阵的所有元素应用if条件而不使用Matlab中的嵌套循环
我想在代码中应用if条件,而不使用循环。请建议如何对矩阵的所有元素应用if条件而不使用Matlab中的嵌套循环,matlab,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)=packe
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
如果我正确理解了您的问题,那么您希望将NAV的每个元素都设置为packetlength,前提是BC为0且当前NAV小于数据包长度。此外,此操作的范围应为CS_range at max。假设N_节点等于BC的长度,等于NAV 5的长度,则可以使用布尔操作:
NAV(BC==0 & NAV<packetlength) = packetlength
由于包装长度在过程中不发生变化,因此无论如何都可以省略外环,因此不需要任何距离边界
如果这不能回答您的问题,请在代码中定义未定义的参数。请展示一些努力:在10行代码中有5个未定义的变量。如果你想得到一些帮助,你应该让我们更容易帮助你