我需要创建一个拥有600个神经元的网络模型。每个神经元可以采用4个输入连接。神经元的输入来自M(待计算)光纤,每根光纤可以给神经元提供最多53个输出连接。神经元获得的每个连接必须来自不同的纤维(没有两根纤维应连接到同一神经元)。每个神经元必须获得4个输入,并且应该看到没有两个神经元从所有4个相同的光纤中获得连接。使用的光纤数量必须尽可能低。
P.S:我认为我可以构造一个600xM的二进制矩阵,使每行的总和为4,每列的总和最大为53.你如何用Matlab或其他任何方式做到这一点。感谢。答案 0 :(得分:1)
这里构造二进制矩阵(600乘m)非零行的简单方法将总和精确为4,每列总和最多为53(如果我理解正确的话,则总和更低),直到有更多行为填写这样他们的总和是4:
m=12;
A=zeros(600,m);
cind=randperm(size(A,1));
for n=1:numel(cind)
ind=find(sum(A)<53);
try
A(cind(n),ind(randperm(numel(ind),4)))=1;
catch err
end
end