我有一个基于以下功能的问题。如果条件为假,如何返回 NaN 或空矩阵。
下面的函数实际上检查 Anchor ID 和 Source ID 是否存在,如果存在这样的组合,它会在循环内部进一步检查 Anchor Channel 和 Source Channel 是否存在,如果存在,那么它将计算“y”并继续。但是,如果在这种情况下不存在 Anchor Channel 和 source Channel 怎么办?还要考虑如果 Anchor ID 和 source ID 不存在怎么办!!!如果它不存在,那么我希望它返回 NaN 或简单地为零。
如何根据我的要求修改此功能?
function [rssi_dBm1]= sampletrue(BlinkSetList,AnchorID,SourceID)
for i=1:length(BlinkSetList)
S=cell2mat(BlinkSetList(i));
for j=1:length(S)
if S(j).AnchorID==AnchorID && S(j).SourceID==SourceID
if S(j).AnchorChan==0 && S(j).SourceChan==0
y=S(j).agc;
rssi_dB1(i)= -(33+y*(89-33)/(29-1));
else
rssi_dB1(i)=NaN;
end
end
end
end
rssi_dB1(rssi_dB1==0)=[];
rssi_dBm1=sum(rssi_dB1(:))/length(rssi_dB1);
disp([sprintf('The rssi value with A-Chan 0 and S-Chan 0 is %0.0f',rssi_dBm1)]);
注意:这只是其中的一部分条件,锚频道和源频道还有另外三种组合来评估。
如果问题仍然不清楚,请发表您的疑问,我会尝试更准确地解释它。
非常感谢您的帮助。提前致谢。