我的問題如下:尋找矩陣在MATLAB
我有以下矩陣:
0 1
1 1
或
1 1 1
1 1 1
0 1 0
或
1 1 1 0
1 1 1 1
0 1 1 0
而且我想得到以下矩陣:
0 1
2 1
或
1 1 1
1 1 1
0 2 0
或
1 1 1 0
1 1 1 2
0 3 3 0
我想是讓子矩陣(或COL-載體,或行向量的情況下,該子矩陣是不可能的),如儘可能大。
我將清楚地解釋:
如果輸入是第三矩陣:
1 1 1 0
1 1 1 1
0 1 1 0
欲組元素垂直或水平,使得儘可能大這些子矩陣。在該示例中最大的子矩陣是:
x x x 0
x x x 1
0 1 1 0
另一個可能的子矩陣,這也是最大的是:
1 x x 0
1 x x 1
0 x x 0
兩個由x
表示。
然後,有三個元素與1,但。所以我想再次分組。再次獲取最大的子矩陣(或子矢量)。在這一點上,根據之前的舉動,我們將得到:
x x x 0
x x x 1
0 y y 0
或
y x x 0
y x x 1
0 x x 0
通過y
代表。
現在,我們有另一個元素,還沒有進行分組,現在我們讓另一組(由z
代表):
y x x 0
y x x z
0 x x 0
如果現在我們選擇另一種輸入,我們有以下步驟:
0 1
1 1
我們有兩個子向量,所以我們有兩個可能的解決方案:
0 1
x x
或
0 x
1 x
然後,根據所選擇的解決方案,我們有以下溶液:
0 y
x x
或
0 x
y x
單獨分組在另一元件。
最後,在第二種情況下,我們只有一個可能的解決方案:
1 1 1
1 1 1
0 1 0
獲取最大的小矩陣,我們有這樣的解決方案:
x x x
x x x
0 1 0
然後,小組最後一個元素獨自:
x x x
x x x
0 y 0
在此先感謝您。
讓我們刪除所有的評論,因爲他們現在只是噪音。 –
這是一個優化問題。你想要「最好的」可能的解決方案或解決方案「夠好」?由於制定最優或次優解決方案的方法可能會非常不同 –
@SembeiNorimaki無所謂,它不是一個優化問題。我想要的是找到儘可能最大的子矩陣,直到將所有元素聚類或組合爲1爲止。謝謝。沒有「最好」或「足夠好」的解決方案,有「可能的解決方案」 –