在使用MATLAB时,遇到如下错误:
错误使用 *
MTIMES (*) 不完全支持整数类。至少一个参数必须为标量。
出错 lanbpro (line 298)
r = At*U(:,1);
出错 lansvd (line 209)
[U,B,V,p,ierr,w] = lanbpro(A,j,p,options,U,B,V,anorm);
出错 Unsupervised_RPCA>inexact_alm_rpca (line 63)
norm_two = lansvd(Y, 1, ‘L’);
出错 Unsupervised_RPCA (line 6)
[L_hat, S_hat, ~] = inexact_alm_rpca(DataTest); % DataTest: num_sam x num_dim
出错 tttttttttttttttt (line 90)
[r0, Output_S, Output_L] = Unsupervised_RPCA(DataTest);
解决办法,把输入数据换成double类型,具体操作如下:
data=im2double(data);
函数im2double将输入转换成double类型。如果输入是 uint8 unit16 或者是二值的logical类型,则函数im2double 将其值归一化到0~1之间。