Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab中的二维对象数组_Matlab - Fatal编程技术网

Matlab中的二维对象数组

Matlab中的二维对象数组,matlab,Matlab,我已经创建了一个名为neuron的句柄子类,我想把它的实例放入一个x,y可寻址的数据结构中。这些对象与x、y网格中“相邻”的其他实例进行交互。我创建了另一个名为nnet的类,它有一个网络属性,我想成为一个NxN神经元数组。每个神经元都有一个属性,即它旁边的其他神经元的句柄的1-d数组,但我也希望有一个网格数据结构,我可以用它来通过x,y来识别神经元句柄。类的开头看起来是这样的,然后构造函数去识别所有的邻居并将句柄附加到它们 classdef nnet < handle %NNET stru

我已经创建了一个名为neuron的句柄子类,我想把它的实例放入一个x,y可寻址的数据结构中。这些对象与x、y网格中“相邻”的其他实例进行交互。我创建了另一个名为nnet的类,它有一个网络属性,我想成为一个NxN神经元数组。每个神经元都有一个属性,即它旁边的其他神经元的句柄的1-d数组,但我也希望有一个网格数据结构,我可以用它来通过x,y来识别神经元句柄。类的开头看起来是这样的,然后构造函数去识别所有的邻居并将句柄附加到它们

classdef nnet < handle
%NNET structure of interconnected neuron objects


properties
    Network;
end

properties(Constant=true)
    AllPositions = cellstr(['NW'; 'N '; 'NE';  ...
                            'W ';       'E ';  ...
                            'SW'; 'S '; 'SE']);
end

methods
    function obj = nnet(dimX, dimY)
        % Constructor creates and fills a net with X by Y neurons
        % and automatically connects neighbors
        % fill initial array
        for y = 1:dimY
            for x = 1:dimX
                obj.Network(x,y) = neuron(x,y);
            end
        end
classdef nnet
Matlab似乎不喜欢n-dim数组中除了double之外的任何东西,因为我收到这样的抱怨“从神经元到double的转换是不可能的”。我可以使用内置数据结构的想法,或者如何修改和使其工作?
谢谢

在任何分配之前将网络设置为单元数组

obj.Network = cell(dimX, dimY);
for y = 1:dimY
    for x = 1:dimX
        obj.Network(x,y) = neuron(x,y);
    end
end

在开始向数组中添加元素之前,请创建一个空的
neuron
s数组

obj.Network = neuron.empty;
empty
是所有类的内置方法,专门为此设计