実際、AnchorID と SourceID が互いに報告する Matlab シミュレーションをコーディングしています。たとえば、アンカー 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);
main 関数では、次のようにコーディングしました。
%A30(BlinkSet);
A50(BlinkSet);
どんな助けでも大歓迎です。