2014-06-27 144 views
-2

我有一個用於創建一個無線傳感器網絡,以幫助下面的MATLAB代碼:瞭解MATLAB代碼

for i=1:n 
    S(i).xb=rand*0.5*xm; 
    S(i).yb=rand*0.5*ym; 
    S(i).E=Eo; 
    S(i).G=0; 
    S(i).type='N'; 
    S(i).id=i; 
    S(i).D=dist(BS.x,BS.y,S(i).xb,S(i).yb); 
    S(i).Etx=Eelec*k+Eamp*k*S(i).D^2; 
    plot(S(i).xb,S(i).yb,'o');  
end 
plot(BS.x,BS.y,'rx'); 

在這個程序中,爲什麼在那裏圓點碼?例如,S(i).xb=rand*0.5*xm;。任何人都可以向我解釋這個嗎?

+0

看起來像xb是一些對象S(i)的成員變量, – taronish4

回答

1

在此代碼中,S將是一個結構數組。每個結構將包含以下成員變量:

  • xb
  • yb
  • E
  • G
  • type
  • id
  • D
  • Etx

否則S(i).xb = rand*0.5*xm;在位置i包含單個構件xb陣列S內將首先創建的結構。這將被分配值rand*0.5*xm。其餘的語句將繼續在數組中的位置i附加更多變量。

,之後如果希望在位置i訪問成員變量的數組S,則仍然會做S(i).xb,或S(i).yb

本質上,你能想到的S爲具有元素的數組每個元素在元素中有8個字段。您將通過使用.訪問字段。