2015-12-28 147 views
0

我開發一個應用程序中,我需要在一個數組存儲在一個循環中矩陣,像這樣:如何將矩陣存儲在循環內的數組中?

MatTable=[]; 
for i=1:n 
Mat=binarisation(Images(i,:)); %binarisation returns a matrix (binary image) 
MatTable=[MatTable, Mat]; 
end 

有了這個代碼的執行過程中沒有錯誤,但結果是不正確的,我試圖使用display(MatTable(i));來顯示MatTable的內容,結果總是:ans=1;

我想這不是將矩陣存儲在循環中的正確方法,那麼實現它的正確方法是什麼?

回答

1

你的代碼的作用是抓取圖像並將其並排存儲在矩陣中。那麼,如果你的圖像是例如10x10像素和n=2,你會得到一個10x20矩陣。

我建議的存儲東西3D陣列:

Images = rand(4); 
n=3; 
MatTable=[]; 
for ii = 1:n 
    Mat = Images; 
    MatTable(:,:,ii) = Mat; 
end 

其產生的3D陣列MatTable,其中每個圖像被沿着第三維(因此第三圖像將是MatTable(:,:,3))含有。這樣就可以通過第三個維度輕鬆訪問所有圖像,而不是跟蹤圖像的寬度以找到我們的結束位置和下一個位置的開始位置。

我在這裏假設您的所有圖片在您的操作後都是相同的大小,這不一定是您擁有的大小,因爲您的上面的代碼只需要相同數量的行。

相關問題