level 1
l=32
dict=Table[2^i,{i,1,l}]
value=Range[Length[dict]]
X=SparseArray[dict->value]
Pos=Table[dict[[RandomInteger[{1,Length[dict]}]]],{i,1,Length[dict]}]
SubsetQ[dict,Pos]
Y=X[[Pos]]
2022年07月20日 14点07分
1
level 1
简单说一下,我发现当稀疏矩阵长度过长时(即使里面没有多少数值),一次性调取多个数值就会产生奔溃。
在我的电脑上,这个问题在Mathematica 11.1和13.0上都会产
CPU的型号如下:Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz 2.50 GHz
内存为16G
希望大佬们能帮我看一下这个问题可能的原因是什么,以及是否有可以解决的办法
2022年07月20日 14点07分
2
吧务
level 9
我这里倒没有崩溃,不过用Extract速度比Part快
Extract[X,Partition[Pos,1]]
2022年07月22日 02点07分
4
可能我的内存稍大一点,32G。用On["Packing"]观察,Part会导致Unpacking,Extract不会
2022年07月22日 02点07分
吧务
level 13
可能和内存相关
可用内存5.24844GB,Mathematica 12.0.0 for Linux x86 (64-bit) 崩溃
终端的输出
$ Mathematica
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
No more memory available.
Mathematica kernel has shut down.
Try quitting other applications and then retry.
free(): double free detected in tcache 2
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
2022年07月22日 13点07分
5