實際上,我正在編寫一個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值。
另外我的任務是當我回報錨ID和源ID說錨爲50和源爲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);
任何幫助,高度讚賞。
實際上BlinkSet是一個包含大約<1561x1 cell>的結構。因此在每個單元格內都有不同的單元格,用於指示其AnchorID和sourceID的報告。 你介意給你寫的附註寫一個例子嗎?這將有所幫助! –
編輯的答案包含請求的示例。 – wakjah
謝謝你Wakjah!出乎意料的是它現在確實有意義!我會試試這個! –