我有一个等式Y = DX。 Y是n乘k,D是n乘m,X是m乘k。在每次迭代中,我使用Y列和算法运行,并更新D的某些列。在迭代1中,算法使用Y的第1列并更新字典,对于迭代2,它使用Y的第2列,依此类推。
在每次迭代中更新D,我想使用标准[(规范(D-D1),'来自')^ 2< 0.0001],其中不需要运行算法k次。 D表示更新的当前字典,D1表示在上一次迭代中更新的字典。
D1=D1+0.05*randn(n,m); % initializing D1 for first iteration to calculate d
d=D-D1;
delta= norm(d,'fro')^2;
k1=0;
while delta>0.0001
D1=D;
for i=1:k
Y(:,i) = ..
...
algorithm
...
end
d=D-D1;
delta= norm(d,'fro')^2;
end
我以这种形式写它,但它不正确,因为它迭代k次但我想迭代j< k次满足收敛标准。
感谢您的关注
答案 0 :(得分:0)
这是你在找什么?我相信如果满足收敛,你希望它退出循环。所以如果符合收敛,你就会回来。
for i=1:k
D1=D;
Y(:,i) = ..
...
algorithm
...
d=D-D1;
delta= norm(d,'fro')^2;
if delta>.0001
return
end
end