MATALB: sparse函數

       在做一個算法時,需要生成一個高維的單位陣,目前維數大概是60000*60000吧,隨着處理圖像尺寸增大,單位陣的維數成平方增長。

       最先嚐試用matlab中eye這個函數生成,但是在樓主4G內存的電腦上out of memory,所以只能另外想辦法。由於高維的單位陣屬於稀疏矩陣,因而想到了用sparse函數。sparse函數用於生成稀疏矩陣。

       函數形式:S = sparse(i,j,s,m,n,nzmax)

       參數:i-非零元的橫座標;

                  j-非零元的縱座標;

                  s-非零元的值;

                  i,j,s都爲向量,有 S(i(k),j(k)) = s(k);

                  m.n-S的維數m*n;

                  nzmax-非零元的數目,可缺省。

    我使用sparse 生成的M*M維的單位陣程序:

                  i=1:M;

                  j=i;

                  s=i./i;

                  S=sparse(i,j,s,M,M);

      補充:matlab對稀疏矩陣的運算應該是單獨處理的,利用sparse生成的單位陣計算時,比用eye生成的單位陣速度更快。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章