我有以下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 :(得分:1)
在此代码中,S
将是一个结构数组。每个结构都包含以下成员变量:
xb
yb
E
G
type
id
D
Etx
执行S(i).xb = rand*0.5*xm;
将首先在位置S
的数组i
内创建一个包含单个成员xb
的结构。这将被赋予rand*0.5*xm
的值。其余的语句将继续将更多变量附加到数组中位置i
的相同结构中。
之后,如果您希望访问阵列i
的{{1}}位置的成员变量,您仍然会S
或S(i).xb
等。
基本上,您可以将S(i).yb
视为具有元素数组,其中每个元素在元素中包含8个字段。您可以使用S
访问字段。