我有一个基于以下函数的问题。如果条件为false,如何返回NaN或空矩阵。如何在条件为假的情况下返回NaN或空矩阵
下面的函数实际检查Anchor ID和Source ID是否存在,如果存在这样的组合,它会在循环内部进一步检查Anchor Channel和Source Channel是否存在(如果存在),那么它将计算“y”上。但是如果Anchor Channel和Source Channel不存在这种情况呢?还要考虑Anchor ID和源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)]);
注意:这只是条件的一部分,锚点通道和源通道还有三个组合需要评估。
如果问题仍然不清楚,请发表您的疑问,我会尽力更准确地解释它。
非常感谢您的帮助。提前致谢。
什么是函数声明行('function ...'语句)? – Shai 2013-04-23 09:44:19
@Shai看看编辑过的版本。现在有意义 – 2013-04-23 09:58:00