稀疏矩陣的三元組存儲(chǔ)方法 稀疏矩陣壓縮存儲(chǔ)的基本思想是什么?
稀疏矩陣壓縮存儲(chǔ)的基本思想是什么?稀疏矩陣壓縮存儲(chǔ)的目的是:C節(jié)省存儲(chǔ)空間,D降低預(yù)算時(shí)間的復(fù)雜度,如果是單選題,則應(yīng)選擇C節(jié)省存儲(chǔ)空間。如果矩陣中非零元素的個(gè)數(shù)遠(yuǎn)遠(yuǎn)小于矩陣元素的總數(shù),且非零元素的分
稀疏矩陣壓縮存儲(chǔ)的基本思想是什么?
稀疏矩陣壓縮存儲(chǔ)的目的是:C節(jié)省存儲(chǔ)空間,D降低預(yù)算時(shí)間的復(fù)雜度,如果是單選題,則應(yīng)選擇C節(jié)省存儲(chǔ)空間。如果矩陣中非零元素的個(gè)數(shù)遠(yuǎn)遠(yuǎn)小于矩陣元素的總數(shù),且非零元素的分布不規(guī)則,則稱為稀疏矩陣;否則,如果非零元素的分布是規(guī)則的(如三角矩陣、下三角矩陣、對(duì)角矩陣),這個(gè)矩陣叫做特殊矩陣。由于matlab只對(duì)非零元素進(jìn)行運(yùn)算,稀疏矩陣的計(jì)算速度較快,這是稀疏矩陣的一個(gè)突出優(yōu)點(diǎn)。假設(shè)矩陣A和B中的矩陣是相同的。計(jì)算2*a需要一百萬次浮點(diǎn)運(yùn)算,而計(jì)算2*B只需要2000次浮點(diǎn)運(yùn)算。由于matlab不能自動(dòng)生成稀疏矩陣,因此需要專門的命令來生成稀疏矩陣,如果每個(gè)數(shù)組元素需要l個(gè)字節(jié),那么整個(gè)矩陣就需要m*n*l個(gè)字節(jié)。然而,大部分的存儲(chǔ)空間是0元素,造成了大量的空間浪費(fèi)。為了節(jié)省存儲(chǔ)空間,只能存儲(chǔ)非0元素
代碼如下:#生成單位矩陣,這是普通矩陣無法創(chuàng)建的,所以使用sparsematrix創(chuàng)建。num_u2;samples=180000rownumber=c(1:num_2;samples)colnumber=c(1:num_2;samples)value=c(rep(1,each=num_2;samples))M=sparse matrix(rownumber,colnumber,x=value)#為單位矩陣賦值。所有賦值完成后,它是一個(gè)對(duì)稱稀疏矩陣,值為4*50*180000。for(i in 1:num?Samples){w=w?有50個(gè)浮點(diǎn)值。N=鄰居#有50個(gè)整數(shù)值。M=M-t(w)M=M-w M=M w%*%t(w)}