当表格达到一定长度

2021-02-12 22:17

时,为什么mathematica这么慢例:我有满满一张桌子数字:foo=Table[Table[RandomComplex[],{i,1000}],{j,8192}];No我想用这些元素做一些事情表:表[Abs[foo

解答动态

  • 可能这是:
    WithCleanup[SetSystemOptions[quot;-quot;TableCompileLengthgt;Infinity],Table[Abs[foo[[1,21]]-foo[[1,-20]]],{2500}];//绝对计时,SetSystemOptions[quot;-quot;TableCompileLengthgt;250]](*{0.006308,Null}*) 2.2之前版本,与cleanup一起使用=Internal`WithLocalSettings.
    或者,编译表:
    [{foo,{u Complex,2}},Table[RandomComplex[]*Table[Abs[foo[[1,21]]-foo[[1,-20]],{250}],{250}]][foo];//AbsoluteTiming(*{0.014384,Null}*) 对于任何版本,我们都可以使用
    foo=Table[Table[RandomComplex[],{i,1000}],{j,8192}];使用[{s1={250},s2={250},q=Abs[foo[[1,21]]-foo[[1,-20]]},Table[RandomComplex[]*Table[q,s1],s2]];//absoluteTimeingout[]={0.0010452,Null} 在更一般的情况下,大约需要{0.144313,Null}
    f[i,j]:=Abs[foo[[i,21]]]-foo[[j,-20]],使用[{s1={i,250},s2={j,250},Table[RandomComplex[]*Table[i,j],s1],s2]];//绝对计时

    • End

    免责声明:

    本页内容仅代表作者本人意见,若因此产生任何纠纷由作者本人负责,概与琴岛网公司无关。本页内容仅供参考,请您根据自身实际情况谨慎操作。尤其涉及您或第三方利益等事项,请咨询专业人士处理。