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

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