Mathematica編程入門:循環(huán)
Map函數(shù)的作用在Mathematica中,有一個(gè)函數(shù)叫做Map。它的第一個(gè)參數(shù)是一個(gè)函數(shù),可以是內(nèi)建函數(shù),也可以是自定義函數(shù)。然后,你需要指定關(guān)聯(lián)的列表。Map的作用就是將這個(gè)列表中的元素挨個(gè)代入到
Map函數(shù)的作用
在Mathematica中,有一個(gè)函數(shù)叫做Map。它的第一個(gè)參數(shù)是一個(gè)函數(shù),可以是內(nèi)建函數(shù),也可以是自定義函數(shù)。然后,你需要指定關(guān)聯(lián)的列表。Map的作用就是將這個(gè)列表中的元素挨個(gè)代入到函數(shù)中進(jìn)行計(jì)算,最后將計(jì)算的結(jié)果以列表的方式收集起來返回給我們。雖然這看起來像是循環(huán),但是Map的效率更高,代碼也更為簡(jiǎn)潔。
Map函數(shù)的語(yǔ)法
我們先來看看Map函數(shù)的語(yǔ)法。語(yǔ)法格式為:
Map[函數(shù)名, 列表]
Map與Table的相同與區(qū)別
現(xiàn)在我們來感受一下Map與Table之間的相同與區(qū)別。這兩個(gè)函數(shù)都可以用于處理列表,但是它們的使用方法和效果有所不同。Map函數(shù)更加靈活,適用于對(duì)列表中的每個(gè)元素進(jìn)行相同的操作,而Table函數(shù)則可以生成一個(gè)新的列表,并且允許使用迭代變量。
Map與純函數(shù)的搭配
剛開始接觸Map的時(shí)候,可能會(huì)感到有些不適應(yīng)。原因可能是因?yàn)镸ap通常與純函數(shù)搭配使用,而純函數(shù)具有一定的靈活性。此外,掌握Map函數(shù)還需要對(duì)Mathematica的層有一定的了解。下面我們來看一個(gè)Map與純函數(shù)的例子。
Map上指定層的例子
值得提醒大家的是,Map遵循了Mathematica下標(biāo)準(zhǔn)層的約定。比如,如果我們想要對(duì)矩陣中的每一行改變順序,那么可以通過將一個(gè)Reverse映射在矩陣的第一層上來實(shí)現(xiàn)。當(dāng)然,這種編碼并不是最佳解決方案,更好的寫法可以參考下圖的第三段代碼。
復(fù)雜例子:顯示國(guó)旗
下面我們來看一個(gè)稍微復(fù)雜一點(diǎn)的Map的例子,即顯示某幾個(gè)國(guó)家地區(qū)的旗幟。在這個(gè)例子中,我們需要使用一些圖形相關(guān)的函數(shù)來繪制旗幟圖案,并將這些函數(shù)與Map函數(shù)結(jié)合使用。