error using the example script of PCA
1 次查看(过去 30 天)
显示 更早的评论
data=imread('result.png');
>> [M,N]=size(data);
>> mn=mean(data,2);
>> data=data-repmat(mn,1,N);
??? Error using ==> minus
Integers can only be combined with integers of the same class, or
scalar doubles.
how to resolve it
0 个评论
回答(1 个)
José-Luis
2013-2-11
编辑:José-Luis
2013-2-11
data = imread('result.png');
data = bsxfun(@minus,data,mean(data,2));
Note that this will not solve your problem, as the mean of integers will probably yield doubles. You probably want to do something like:
data = bsxfun(@minus,data,int8(mean(data,2)));
You can find the data type using:
whos data
and you could then modify the application accordingly (change the int8 to the appropiate type). Please accept an answer if it helps you.
2 个评论
José-Luis
2013-2-11
编辑:José-Luis
2013-2-11
It means that mean(data) is not the same type as data. Have you tried what i suggested? What does
whos data
return before you run the script?
Alternatively you could convert everything to double. This should work:
data = double(imread('result.png'));
data = bsxfun(@minus,data,mean(data,2));
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!