2010年9月26日 星期日

[自動轉寄] Re: [問題] mathematica陣列處理相關問題

作者: hcl012 (怪龍-卡西歐魯)
標題: Re: [問題] mathematica陣列處理相關問題
時間: Mon Sep 27 00:33:38 2010

※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: ※ 引述《hcl012 (怪龍-卡西歐魯)》之銘言:
: : 標題: [問題] mathematica陣列處理相關問題
: : 時間: Sat Sep 25 14:13:58 2010
: : 下面是我的code
: : --
: : b = {{0, 0, 0}, {1, 0, 0}, {1, 0, 1}, {1, 1, 1}, {1, 1, 0}, {0, 1, 0}};
: : cent[b_] := {
: : (b[1, 1] + b[2, 1] + b[3, 1] + b[4, 1] + b[5, 1] + b[6, 1])/ 6,
: : (b[1, 2] + b[2, 2] + b[3, 2] + b[4, 2] + b[5, 2] + b[6, 2])/ 6,
: : (b[1, 3] + b[2, 3] + b[3, 3] + b[4, 3] + b[5, 3] + b[6, 3])/6};
: : cent[b]
: : --
: : 上面的陣列b裝著六個點的座標
: : 而cent[b]是算出六個點的中點
: : 理論上應該是要output出{0.66666, 0.5, 0.33333}之類的東西...
: : 但是結果卻像下面這張圖這樣
: b[x,y]在Mathematica中指的是b的函數,要取出陣列的的元素要用Part或是[[]]
: b[[All,i]]=>各列的第i個元素
: 所以cent這個函數可以寫成
: b={{0,0,0},{1,0,0},{1,0,1},{1,1,1},{1,1,0},{0,1,0}};
: cent1[b_List]:=Total[b[[All,#]]]/Length[b]&/@Range[Last[Dimensions[b]]]
: 但是如果只是要取重心或是平均數,那直接用Mean就可以了!
: cent2[b_List]:=Mean[b]
: cent1[b]
: cent2[b]

太感謝了

其實我就是需要Mean[]這樣的功能

只是對mathematica函數不熟所以都只好自己寫....


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 72.223.2.129

沒有留言:

張貼留言