2016-02-28 57 views
0

我會舉例說明我的問題MATLAB:如何在沒有填充的情況下將窗口滑過矩陣?

我有一個3x100的矩陣,我想在它上面滑動一個3x3濾鏡。 但是,我不希望任何imfilter會使用的填充(例如X,對稱,複製等),這會產生3x100輸出。 我寧願只在存在真實數據時應用滑動窗口,以使我的輸出爲1x(100-4)。

什麼是最優雅的(露趾)方式在matlab中做到這一點?

+0

你是否在'imfilter'中使用''conv''選項(或其他)?你不能只用'C = imfilter(A,B);''C = C(2,2:end-1);'?對於這樣的小尺寸,這可能非常有效。 – horchler

+0

我認爲你的意思是你的輸出是1×98,而不是1×96 – Suever

回答

1

您可以使用內置的conv2函數和'有效'作爲形狀參數,它只會在過濾器和數據之間有完全重疊時提供結果。

filtered = conv2(data, filter, 'valid'); 
+0

FYI,'imfilter'使用[相關而不是卷積](http://dsp.stackexchange.com/questions/12684/difference-between - 相關和卷積圖像)默認情況下,因此我的問題在上面的評論。 – horchler

相關問題