如何[使用向量(d,1)作为行(1,d)创建矩阵(M x d)? /将vec'(即vec转置)分配给矩阵行?]

时间:2013-11-06 01:54:05

标签: matlab vector matrix

我正在尝试拍摄每个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;

〜谢谢你

1 个答案:

答案 0 :(得分:1)

预先分配矩阵,如:

img_vctr_arr = zeros(M,d);

然后填写:

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

确保numel(I)等于d