のすべての可能な0と1の行列が良く、私は必要なものを説明するために、ここで私の最初のコードです:通常のグラフ
function allpos = f1(x)
allpos=reshape(permute((dec2base(0:power(2,x*x)-1,2)-'0'),[3 2 1]),x,x,[]);
このコードは、私はそれが必要なものを正確に行います。ユーザーがf1(2)
を入力すると、[0 0; 0 0]
から[1 1; 1 1]
までのすべての行列が返されます。しかし、それはまた私に多くの無駄な行列を与える。私は、対角線上にミラーリングされた行列だけを、対角線上には唯一ゼロが必要です。
さらに簡単に言えば、f1(3)
の場合、私はほしいと思うだけです。 [0 0 0; 0 0 0; 0 0 0]
から[0 1 1; 1 0 1; 1 1 0]
です。つまり、私が新しいを実行する場合は、f1(3)
; 512ではなく8個の行列を返します。
これを行うには関数を書き直すにはどうすればよいですか?私はそれが三角行列とその転置された自己のいくつかの並べ替えを必要とすることを知っていますが、私はそれを一緒に詰めることはできません。ありがとう!
パーフェクト!ありがとうございました。 – CharlesLyleLarue