1
Matlabで対称行列0と1を使用して分離されたリンクブロックの数を見つける方法はありますか?行列内のリンクされた要素のブロック数
たとえば、行列Aでは、A(n、m)= 1の場合、メンバnとmが接続されます。接続された要素はブロックを作成します。以下の行列では、メンバー2,3,4,5,6,8,9が接続されてブロックされています。また、あなたの前の質問(link)あなたの代わりにバイナリ指示の、その後、各ブロック内のメンバーの数はsqrtラベルを使用することができ、次の2に等しいサイズの2つのクラスタと1つのサイズのブロック7
A = [1 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 0 1 1 0
0 1 1 1 1 1 0 1 1 0
0 1 1 1 1 1 0 1 1 0
0 1 1 1 1 1 0 1 1 0
0 1 1 1 1 1 0 1 1 0
0 0 0 0 0 0 1 0 0 0
0 1 1 1 1 1 0 1 1 0
0 1 1 1 1 1 0 1 1 0
0 0 0 0 0 0 0 0 0 1]
質問に追加したコードを見てください。私はあなたの答えを私の場合に使用しようとしましたが、一般的に 'B = double(A | diag(ones、1、size(A、1))))));)を使用する必要があるので、 –
は動作しません。 %ノードはそれ自身に接続されています。しかし、それ以外のこの特定のAは2つのブロック(サイズ2と7)を持たず、1つ(サイズ7のブロック)しか持たない。つまり、1つのクラスタ(2,3,4,5,6,8,9)は1ブロックしかありません(この接続/グラフのメンバー数は7です)。あるいは、私はあなたの "ブロック"の意味を理解していないかもしれません。 – user2999345