2015-12-28 63 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))含有。这样就可以通过第三个维度轻松访问所有图像,而不是跟踪图像的宽度以找到我们的结束位置和下一个位置的开始位置。

我在这里假设您的所有图片在您的操作后都是相同的大小,这不一定是您拥有的大小,因为您的上面的代码只需要相同数量的行。

相关问题