实际上,我正在编写一个 Matlab 模拟,其中 AnchorID 和 SourceID 将相互报告。例如,如果我采用锚点 30 和源 50,它将收集这些锚点和源之间的所有 agc 值并计算 rssi_dB 并显示它们。下面提到的是锚点 30 和源 id 50 的示例
注意:锚点 ID 和源 ID 的列表是相同的。例如 30 50 55 58 。这些 ID 对于锚点和源都是相同的。
function A30(BlinkSet)
for i=1:length(BlinkSet)
xAnchorID=30;
xSourceID=50;
a=BlinkSet{i}.AnchorID;
b=BlinkSet{i}.SourceID;
if xAnchorID==a && xSourceID==b
xagc=BlinkSet{i}.agc;
rssi_dB(i)=-(33+xagc*(89-33)/(29-1));
end
end
rssi_dB(rssi_dB==0)=[];
rssi_dBm=sum(rssi_dB(:))/length(rssi_dB);
disp([sprintf('The rssi value is %0.0f',rssi_dBm)]);
当我在 Matlab 命令窗口中调用该函数时,我得到了上述函数的 rssi 值。
另外,我的任务是,当我将 Anchor ID 和源 ID 说 Anchor 为 50,源 ID 为 30 时,就像我在下面提到的函数一样,我得到一个错误,它在下面的函数之后提到。
function A50(BlinkSet)
for i=1:length(BlinkSet)
xAnchorID=50;
xSourceID=30;
a=BlinkSet{i}.AnchorID;
b=BlinkSet{i}.SourceID;
if xAnchorID==a && xSourceID==b
xagc=BlinkSet{i}.agc;
rssi_dB(i)=-(33+xagc*(89-33)/(29-1));
end
end
rssi_dB(rssi_dB==0)=[];
rssi_dBm=sum(rssi_dB(:))/length(rssi_dB);
disp([sprintf('The rssi value is %0.0f',rssi_dBm)]);
当我调用这个函数时,我得到一个错误
??? Undefined function or variable "rssi_dB".
Error in ==> A50 at 14
rssi_dB(rssi_dB==0)=[];
Error in ==> main_reduced at 26
A50(BlinkSet);
在主要功能中,我这样编码,
%A30(BlinkSet);
A50(BlinkSet);
非常感谢任何帮助。