[問題] 稀疏矩陣的rank計算已回收

看板MATLAB作者 (moonet)時間16年前 (2009/07/13 18:51), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串1/1
一個矩陣A的rank 可以由 rank(A) 來得到 但如果A是稀疏矩陣 rank(A) 就會傳回 ================================================ ??? Error using ==> svd Use svds for sparse singular values and vectors. Error in ==> rank at 15 s = svd(A); ================================================ 我嘗試過開另一個m檔,把rank 裡面的 svd 改成 svds 後執行 沒有出現錯誤,但是答案不對 因為A太大不能先 full(A) 所以請問稀疏矩陣的rank要如何求得? 找到方法了... 把 rank.m 裡的 s = svd(A); 改成 s = svds(A,max(size(A)')); 然後存成新的m檔就可以了 -- blog:http://etrex.blogspot.com/ site:http://web.ntust.edu.tw/~B9409041/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.9.202

07/13 20:58, , 1F
sprank??
07/13 20:58, 1F

07/14 10:32, , 2F
可惜不行,有 sprank(A) 不等於 rank(full(A)) 的例子
07/14 10:32, 2F
※ 編輯: etrexetrex 來自: 140.118.9.202 (07/14 10:50)

07/14 10:53, , 3F
雖然這樣可以跑 但是會卡在 out of memory...
07/14 10:53, 3F
文章代碼(AID): #1AMn7Dgc (MATLAB)
文章代碼(AID): #1AMn7Dgc (MATLAB)