代码:
aa = sum(fea_a.*fea_a,2);
bb = sum(fea_b.*fea_b,2);
ab = fea_a * fea_b';
错误使用 *
MTIMES (*) 不完全支持整数类。至少一个参数必须为标量。
出错 EuDist2 (line 47)
ab = fea_a * fea_b';
出错 constructW (line 334)
dist = EuDist2(fea(smpIdx,:),fea,0);
出错 constructW_W (line 7)
W = constructW(paviaU,options);
解决办法:
因为imread读入源图像为三维,所以不能进行D=A*X*A'。必须对读取的图像做I=im2double(I)。函数im2double将输入转换成double类型。如果输入是 uint8 unit16 或者是二值的logical类型,则函数im2double 将其值归一化到0~1之间。