错误使用 * MTIMES (*) 不完全支持整数类。至少一个参数必须为标量。

在使用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之间。

你可能感兴趣的:(错误使用 * MTIMES (*) 不完全支持整数类。至少一个参数必须为标量。)