function [W, alpha, mu] = computeW(X, Z, rho, lambda1, mxitr, c)
[n,d] = size(X);
[~,k] = size(Z);
alpha = zeros(n, k);
mu = zeros(n, k);
ph = sqrt(1+rho);
W = zeros(d, k);
Xp = X/ph;
libArgs = ['-s 12 -p 0 -c ', num2str(c), ' -q'];
for j = 1:mxitr
Z_temp = (Z+rho*(alpha-mu))/ph;
for cgs_cnt = 1:k
model = train(Z_temp(:, cgs_cnt), Xp, libArgs);
W(:, cgs_cnt) = model.w;
end
alpha = XW+mu;
alpha = sign(alpha).(max(abs(alpha)-(lambda1/rho), 0));
mu = mu + X*W - alpha;
end
end
检查对函数 'train' 的调用中是否存在不正确的参数数据类型或缺少参数。
出错 computeW (第 14 行)
model = train(Z_temp(:, cgs_cnt), Xp, libArgs);
传入的参数类型不符合子函数里的运算要求,或者传入的参数值实际为空(相当于没传)