algorithm - 创建一个沿行和列具有常量和的二维二进制矩阵

标签 algorithm matlab networking matrix neural-network

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

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

最佳答案

这里有一种构建二进制矩阵(600 x 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

关于algorithm - 创建一个沿行和列具有常量和的二维二进制矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23947759/

相关文章:

python - 如何获取 Udp 缓冲区大小超过丢失的数据包

python - 在列表中找到所有的山丘和山谷

c - C/C++中double的快速反平方

php - 按给定数字查找数字

Matlab 样条插值 从 Y 中找到 X

matlab - 在 MATLAB 中获取最接近的数据点的索引到 Kmeans 聚类中的质心

Matlab定义几个阶跃函数

linux - 在linux中,路由在环回上与分配给NIC的IP是否采用不同的路径

Python:获取 IPv6 套接字以接收发往子网路由器任播地址的数据包

algorithm - 可微函数的大 O 证明