You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.5 KiB
Matlab
84 lines
2.5 KiB
Matlab
function [W,V,interconnects]=define_network(numStages)
|
|
%define weights for the pc/bc-dim network
|
|
|
|
[angles,ranges,partitions,values,stdx,stdw]=simulate_agent();
|
|
|
|
%stage 1: correspondance between retina / eye position and head-centred coordinates
|
|
if numStages>=1
|
|
n(1)=0;
|
|
for R=ranges.Rcentres
|
|
for E=ranges.Ecentres
|
|
n(1)=n(1)+1;
|
|
angles.R=R;
|
|
angles.E=E;
|
|
angles.H=NaN;
|
|
angles=simulate_agent(angles);
|
|
W{1}(n(1),:)=...
|
|
[code(angles.R,values{1,1},stdw,0,1),...
|
|
code(angles.E,values{1,2},stdw,0,1),...
|
|
code(angles.H,values{1,3},stdw,0,1)];
|
|
V{1}(n(1),:)=...
|
|
[code(angles.R,values{1,1},stdw),...
|
|
code(angles.E,values{1,2},stdw),...
|
|
code(angles.H,values{1,3},stdw)];
|
|
end
|
|
end
|
|
W{1}=W{1}./3;
|
|
interconnects{1,1}=[];
|
|
end
|
|
|
|
%stage 2: correspondance between head-centred / neck position and body-centred coordinates
|
|
if numStages>=2
|
|
n(2)=0;
|
|
for H=ranges.Hcentres
|
|
for N=ranges.Ncentres
|
|
n(2)=n(2)+1;
|
|
angles.H=H;
|
|
angles.N=N;
|
|
angles.B=NaN;
|
|
angles=simulate_agent(angles);
|
|
W{2}(n(2),:)=...
|
|
[code(angles.H,values{2,1},stdw,0,1),...
|
|
code(angles.N,values{2,2},stdw,0,1),...
|
|
code(angles.B,values{2,3},stdw,0,1)];
|
|
V{2}(n(2),:)=...
|
|
[code(angles.H,values{2,1},stdw),...
|
|
code(angles.N,values{2,2},stdw),...
|
|
code(angles.B,values{2,3},stdw)];
|
|
end
|
|
end
|
|
W{2}=W{2}./3;
|
|
%define partition in stage 1 that receives/sends to stage 2
|
|
interconnects{1,2}=partitions{1,3};
|
|
%define partition in stage 2 that receives/sends to stage 1
|
|
interconnects{2,1}=partitions{2,1};
|
|
end
|
|
|
|
%stage 3: correspondance between body-centred / torso position and world-centred coordinates
|
|
if numStages>=3
|
|
n(3)=0;
|
|
for B=ranges.Bcentres
|
|
for T=ranges.Tcentres
|
|
n(3)=n(3)+1;
|
|
angles.B=B;
|
|
angles.T=T;
|
|
angles.W=NaN;
|
|
angles=simulate_agent(angles);
|
|
W{3}(n(3),:)=...
|
|
[code(angles.B,values{3,1},stdw,0,1),...
|
|
code(angles.T,values{3,2},stdw,0,1),...
|
|
code(angles.W,values{3,3},stdw,0,1)];
|
|
V{3}(n(3),:)=...
|
|
[code(angles.B,values{3,1},stdw),...
|
|
code(angles.T,values{3,2},stdw),...
|
|
code(angles.W,values{3,3},stdw)];
|
|
end
|
|
end
|
|
W{3}=W{3}./3;
|
|
%define partition in stage 2 that receives/sends to stage 3
|
|
interconnects{2,3}=partitions{2,3};
|
|
%define partition in stage 3 that receives/sends to stage 2
|
|
interconnects{3,2}=partitions{3,1};
|
|
end
|
|
n
|