Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
Drexel University or The Math Forum.


Roy
Posts:
17
Registered:
4/10/13


How to reciprocate in Matlab
Posted:
Apr 2, 2013 5:23 AM


Actually I am coding a Matlab simulation where the AnchorID and SourceID will report to eachother. For example if I take an anchor 30 and source 50 it will collect all the agc values between these anchor and source and calculate rssi_dB and display them.Below mentioned is an example of anchor 30 and source id 50
Note: list of anchors ID's and source ID's are same. for e.g. 30 50 55 58 . These ID are both same for anchor and source.
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*(8933)/(291)); 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)]); When I call the function in Matlab command window I get the rssi value of the above function.
Also my task is when I reciprocate the Anchor ID and source ID say Anchor as 50 and source as 30 like the function I have mentioned below I get an error which is mentioned after the function below.
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*(8933)/(291)); 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)]);
When I call this function I get an error as
??? Undefined function or variable "rssi_dB".
Error in ==> A50 at 14 rssi_dB(rssi_dB==0)=[];
Error in ==> main_reduced at 26 A50(BlinkSet);
In main function I have coded like this,
%A30(BlinkSet); A50(BlinkSet);
Any help is highly appreciated.



