Feiping Nie的NIPS 2010公布代码L21R21第44行用的D = spdiags(d,0,n,n);可用D =diag(d)实现类似功能,但可能效率更低,在54服务器FRGC 30Train,前者耗时22秒,后者耗时53秒。因为前者采用稀疏存储,更节省内存。Nie老师讲:功能相同,但由于是sparse的矩阵,矩阵很大时会快很多。
简单例子:
p=[1 2 3]; D1=diag(p);D2 =  spdiags(p',0,3,3);