我正在尝试拍摄每个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;
〜谢谢你
答案 0 :(得分:1)
预先分配矩阵,如:
img_vctr_arr = zeros(M,d);
然后填写:
img_vctr_arr(i,:) = I(:)'; % do not even need the '
确保numel(I)
等于d
。