看板 Mathematica 關於我們 聯絡資訊
小弟正在讀一段MATHEMATICA的CODE 想改寫到MATLAB 因為對MMA不熟 所以之後想用MATLAB處理這個問題4 其中有段CODE Position[{{1}, {4}, {6}, {6}, {7}, {10}}, _?(Intersection[{4, 6}, #] != {} &), {1}, Heads->False] OUTPUT結果是 {{2}, {3}, {4}} 這段CODE只是想比較兩個集合 並給出兩者交集的元素在第一個集合的位置 想請問的是 _?(Intersection[{4,6}, #] != {} &), {1} 這段CODE的作用為何呢 特別是 _? 以及 最後的 & 分別想扮演的角色 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 130.126.255.149 ※ 文章網址: http://www.ptt.cc/bbs/Mathematica/M.1419810232.A.F28.html
LPH66: 簡答: 這是以函數為條件的 Pattern 12/29 07:51
LPH66: 如果只是想知道它在做什麼的話, (...&) 那一段中間的 ... 12/29 07:52
LPH66: 是一個純函式, 此 Pattern 即為代入此函式得 True 的所有值 12/29 07:53
LPH66: 而 Position 即是找出所有符合後者 Pattern 的元素位置 12/29 07:53
LPH66: 純函式可看 #1EiPGgzs, 簡而言之 # 是參數 12/29 07:55
LPH66: 之所以這是簡答是因為 Pattern 是 Mathematica 運算的核心 12/29 07:55
LPH66: 要詳解大概要好幾篇文.... 12/29 07:56
forrester: 樓上前輩 太感謝了 我會搜尋有關PATTERN的知識 12/29 07:57
LPH66: Position 的第三參數 {1} 則是指定要找第幾層的元素 12/29 07:57
LPH66: 此例即為第一層深, 即它會去把 {1}, {4} 等等代入函式 12/29 07:58
LPH66: 不指定則預設會有多深找多深 12/29 07:59
forrester: 再度感謝 MMA實在有點深奧 我還是比較適合MATLAB 12/29 08:00