创建一个二维二进制矩阵,沿行和列具有常数和

时间:2014-05-30 05:37:46

标签: algorithm matlab networking matrix neural-network

我需要创建一个拥有600个神经元的网络模型。每个神经元可以采用4个输入连接。神经元的输入来自M(待计算)光纤,每根光纤可以给神经元提供最多53个输出连接。神经元获得的每个连接必须来自不同的纤维(没有两根纤维应连接到同一神经元)。每个神经元必须获得4个输入,并且应该看到没有两个神经元从所有4个相同的光纤中获得连接。使用的光纤数量必须尽可能低。

P.S:我认为我可以构造一个600xM的二进制矩阵,使每行的总和为4,每列的总和最大为53.你如何用Matlab或其他任何方式做到这一点。感谢。

1 个答案:

答案 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