インスタンスをx、yアドレス指定可能なデータ構造に配置したいニューロンと呼ばれるハンドルサブクラスを作成しました。オブジェクトは、x、yグリッドでオブジェクトの「隣」にある他のインスタンスと相互作用します。ニューロンのNxN配列になりたいというNetworkプロパティを持つnnetという別のクラスを作成しました。各ニューロンには、その隣にある他のニューロンのハンドルの1次元配列であるプロパティがありますが、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
Matlabは、「ニューロンからdoubleに変換することはできません」という苦情を受けたため、double以外のn-dim配列には何も好きではないようです。使用できる組み込みのデータ構造のアイデアや、これを変更して機能させる方法はありますか?ありがとう!