Stats

342,720

Popular Posts

Followers

Mathematica 教學 Partition a list based on columns

戴忠淵 於 2011年6月17日星期五 下午3:04 發表



f[ntemp_Integer]:=Block[{n=ntemp,A=Range[ntemp^2],AA,BB},
(*產生切割點*)
AA=Insert[
A[[#[[1]]+1;;#[[2]]]]&/@Partition[Accumulate[Flatten@{Range[n],
Range[n-1,1,-1]}],2,1],{1},1];

(*產生臨時陣列*)
BB=If[#<=n,
Flatten@{AA[[#]],Table[0,{Range[n-Length@AA[[#]]]+1}]},
Flatten@{Table[0,{Range[n-Length@AA[[#]]]+1}],
AA[[#]]}]&/@Range[Length@AA];

(*輸出矩陣*)
BB[[#;;#+n-1,#]]&/@Range[n]//MatrixForm
]





m[n_]:=With[{b=FoldList[Plus,0,Join[Range[n-1],Range[n-1,1,-1]]]},
Table[Take[b,{i,i+n-1}]+i,{i,n}]]


f[10]
m[10]
Tags:

讀者回應 ( 0 意見 )

發佈留言

Please leave your name and tell me what you thought about this site. Comments, suggestions and views are welcomed.

如果這篇文章對你有幫助,那請留個訊息給我~