Matlab 如何[使用向量(d,1)作为其行(1,d)创建矩阵(M x d)?/将向量和x27(即向量转置)分配给矩阵行?]
我试图拍摄Matlab 如何[使用向量(d,1)作为其行(1,d)创建矩阵(M x d)?/将向量和x27(即向量转置)分配给矩阵行?],matlab,vector,matrix,Matlab,Vector,Matrix,我试图拍摄m图像(比如I),每个图像都有d像素;将它们转换为向量ImgVctr;并将它们存储为mxd矩阵的数组。我该怎么做 我尝试了以下方法 ImgVctr = I(:); img_vctr_arr(i,:) = ImgVctr'; 但它失败了,错误如下: Subscripted assignment dimension mismatch. 有什么简单的建议吗 所有的帮助将不胜感激 编辑: 完整的matlab代码附在下面: img_vctr_arr = zeros (3, 38*28); f
m
图像(比如I
),每个图像都有d
像素;将它们转换为向量ImgVctr
;并将它们存储为mxd
矩阵的数组。我该怎么做
我尝试了以下方法
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;
~Thankyou预先分配矩阵,如:
img_vctr_arr = zeros(M,d);
然后填写:
img_vctr_arr(i,:) = I(:)'; % do not even need the '
只需确保
numel(I)
等于d
I的大小是多少?它是包含所有图像的3D图像还是图像的单个实例?比如说38 x 28。我已经把它转换成大小为1064(=38*28)的向量。这是一个单一的图像。。我有3张这样的图片,制作一个大小为[31064]的矩阵,所有的图片都存储在哪里?什么变量包含所有数据?是的,这是我的错误@chappjc,感谢你的提示tyI使用了38*28。。而我的图像是38*26