0

我正在尝试拍摄每个像素的M图像(例如I) ;d将它们转换为向量ImgVctr;并将它们存储为M x d矩阵数组。我该怎么做?

我尝试了以下

ImgVctr = I(:);
img_vctr_arr(i,:) = ImgVctr';

但它失败并出现错误:

Subscripted assignment dimension mismatch.

有什么简单的方法可以做到这一点吗?

所有帮助将不胜感激!

编辑:完整的matlab代码附在下面:

img_vctr_arr = zeros (3, 38*28);
for i = 1:3
    clearvars I;
    fname = sprintf('a%d.png', i);    
    I = imread(fname);
    I = rgb2gray (I);

    ImgVctr = I(:);
    img_vctr_arr(i,:) = ImgVctr';
    figure (), imshow (I);

    [x, y] = size(I);
    fprintf ('%d, ', x);
    fprintf ('%d\n', y);
end;

~ 谢谢

4

1 回答 1

1

预分配矩阵,如:

img_vctr_arr = zeros(M,d);

然后填写:

img_vctr_arr(i,:) = I(:)'; % do not even need the '

只要确保numel(I)等于d

于 2013-11-06T02:02:44.307 回答