深入理解Mathematica編程:[2]循環_2
在Mathematica編程中,Do函數是一種常見的循環函數,對于那些從其他編程語言轉向Mathematica的開發者來說,可能更傾向于使用Do。那么,Do和Table有何區別呢?最大的不同在于,Do
在Mathematica編程中,Do函數是一種常見的循環函數,對于那些從其他編程語言轉向Mathematica的開發者來說,可能更傾向于使用Do。那么,Do和Table有何區別呢?最大的不同在于,Do僅僅是執行表達式n次,當整個Do運算完成后,并不會返回任何結果。
Do的語法結構
首先讓我們來看一下Do的語法結構,你會發現它與Table非常相似。雖然Do執行后并沒有任何結果返回,但這正是與Table的區別所在。
用Table和Do執行同一語句的對比
讓我們拿出一條相同的語句,分別使用Table和Do來執行。通過觀察可以發現,使用Do執行后并沒有任何結果返回,這與前文提到的兩者區別是一致的。
Do循環命令的必要性
也許你會對為什么需要Do循環命令感到困惑。實際上,在某些情況下,我們并不關心返回的結果,只需執行循環操作。例如,如下所示的代碼段,我們僅對每個文件執行生成縮略圖的操作,而無需得到所有縮略圖的結果。
數據收集方法
另一方面,如果我們只對循環過程中計算的某些結果感興趣,也是可以進行數據收集的。舉個例子,我們只收集100以內的素數。
高效收集中間數據的方法
現在讓我們看一個更高效的收集中間數據的例子。這里將介紹使用Sow和Reap進行數據收集的方式。通過這種方式,我們可以更靈活地獲取我們感興趣的中間結果,提高程序的效率。