Re: [問題] 如何切割與分配數列
看板Mathematica作者chungyuandye (養花種魚數月亮賞星星)時間12年前 (2013/01/05 07:58)推噓2(2推 0噓 1→)留言3則, 2人參與討論串2/2 (看更多)
※ 引述《hollowowl (空鴞)》之銘言:
: 想問個在大家眼中可能很簡單的問題(版上的文章好多看不懂ˊˋ
: 如題 但應該不能只用Partition或Flatten做到
: 假設我一開始畫了一個30X30的數列
: A = RandomChoice[{-1, 1}, {30, 30}];
: s[i_, j_] := A[[i, j]];
: 每個都有標號s(1,1)、s(1,2)、...、s(2,1)、...、s(30,30)
: 然後每個都有對應的值(1或-1)
: 現在我想要把格子變大但是大小不變 也就是變成10X10
: 新的格自各自對應的質變成本來的9個值的相加
: 我不知道怎麼去重新分配我的格子
: 舉個簡單的例子像
: ┌ ┬ ┬ ┬ ┬ ┬ ┬ ┬ ┬ ┐
: 1 1 1 2 2 2 3 3 3
: ├ ┼ ┼ ┼ ┼ ┼ ┼ ┼ ┼ ┤
: 1 1 1 2 2 2 3 3 3
: ├ ┼ ┼ ┼ ┼ ┼ ┼ ┼ ┼ ┤
: 1 1 1 2 2 2 3 3 3
: ├ ┼ ┼ ┼ ┼ ┼ ┼ ┼ ┼ ┤ ┌ ┬ ┬ ┐
: 4 4 4 5 5 5 6 6 6 09 18 27
: ├ ┼ ┼ ┼ ┼ ┼ ┼ ┼ ┼ ┤ ├ ┼ ┼ ┤
: 4 4 4 5 5 5 6 6 6 => 36 45 54
: ├ ┼ ┼ ┼ ┼ ┼ ┼ ┼ ┼ ┤ ├ ┼ ┼ ┤
: 4 4 4 5 5 5 6 6 6 63 72 81
: ├ ┼ ┼ ┼ ┼ ┼ ┼ ┼ ┼ ┤ └ ┴ ┴ ┘
: 7 7 7 8 8 8 9 9 9
: ├ ┼ ┼ ┼ ┼ ┼ ┼ ┼ ┼ ┤
: 7 7 7 8 8 8 9 9 9
: ├ ┼ ┼ ┼ ┼ ┼ ┼ ┼ ┼ ┤
: 7 7 7 8 8 8 9 9 9
: └ ┴ ┴ ┴ ┴ ┴ ┴ ┴ ┴ ┘
test={{1,1,1,2,2,2,3,3,3},{1,1,1,2,2,2,3,3,3},
{1,1,1,2,2,2,3,3,3},{4,4,4,5,5,5,6,6,6},
{4,4,4,5,5,5,6,6,6},{4,4,4,5,5,5,6,6,6},
{7,7,7,8,8,8,9,9,9},{7,7,7,8,8,8,9,9,9},
{7,7,7,8,8,8,9,9,9}};
(* size: 分割長度 *)
myans[mydata_?MatrixQ,size_?IntegerQ]:=Block[{s,l},
s[m_,n_]:=Total@Flatten@mydata[[m;;m+size-1,n;;n+size-1]];
l=Partition[Range[Length@mydata],size][[All,1]];
Table[s[i,j],{i,l},{j,l}]
]
MatrixForm@myans[test, 3]
(* 直接使用內建Partition函數 *)
Map[Total@Flatten[#]&,Partition[test,{3,3},3],{2}]
--
養花種魚數月亮賞星星
http://chungyuandye.twbbs.org
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.193.119
推
01/05 12:43, , 1F
01/05 12:43, 1F
推
01/06 02:49, , 2F
01/06 02:49, 2F
→
01/06 21:02, , 3F
01/06 21:02, 3F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Mathematica 近期熱門文章
PTT數位生活區 即時熱門文章