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
computeW(X, Z, rho, lambda1, mxitr, c)
函数或变量 'X' 无法识别。
你是直接运行的这个函数脚本吗?有没有在主函数里正确传入参数?
1、在命令窗⼝中输⼊:type 函数名(例如type rgb2gray等),就会在命令窗⼝出现该函数的相关说明及源代码;
2、在命令窗⼝中输⼊:open 函数名(例如open rgb2gray等),就会打开该函数的m⽂件;
3、在命令窗⼝中输⼊:edit函数名(例如edit rgb2gray等),同样会打开该函数的m⽂件;
4、还有⼀种⽅法就是故意将原函数的参数类型或者个数写错,就会出现出错提⽰,点击提⽰出错处,也可以打开该函数的m⽂件;
检查对函数调用的每个参数类型是否正确