Matlab I';我试图找到灰度图像的特征值和向量,并得到错误;矩阵尺寸必须一致”;

Matlab I';我试图找到灰度图像的特征值和向量,并得到错误;矩阵尺寸必须一致”;,matlab,Matlab,代码给出错误“矩阵尺寸必须一致”。那么我应该做些什么改变呢 %reading a image I =imread('C:\Program Files\MATLAB\R2013a\New folder\fac.jpg'); m = mean(I,2); I = double(I)- double(repmat(m,10,1)); %calculating covariance matrix c=cov(I); %calculating eigenvalues and eigenvecto

代码给出错误“矩阵尺寸必须一致”。那么我应该做些什么改变呢

%reading a image
I =imread('C:\Program Files\MATLAB\R2013a\New folder\fac.jpg');

m = mean(I,2);

I = double(I)- double(repmat(m,10,1));

%calculating covariance matrix 
c=cov(I);

%calculating eigenvalues and eigenvectors
[eigenvalue,eigenvector]=eig(c);

首先,确保
I
是2D矩阵。这是
cov
工作所必需的。其次,使用
repmat(m,n,p)
,其中
n
p
使得
size(repmat(m,n,p))==size(I)

示例

I =imread('myImg.jpg'); % 63x83x3 matrix containing 3D RGB information.
I = rgb2gray(I); % 3D RGB to 2D gray scale. Now I is a 63x83 matrix.
m = mean(I,2);                 
I = double(I)- double(repmat(m,1,83));  
c=cov(I);
[eigenvalue,eigenvector]=eig(c);

问题似乎是
I
repmat(m,10,1)
的维度不同。你的形象有多大尺寸?