幾天前我開始學習一點Matlab。我應該在Matlab中使用arrayfun嗎?
我想繪製狄拉克梳狀近似,所以因爲我知道有些函數式編程,而且有人告訴我:「你不應該需要for
環在Matlab」,我結束了這一點:
M = 50
dx = 0.1
r = 20
x = -r/dx:r/dx
y = arrayfun(@(k) dx .* sum(exp(-2j * pi * dx * k * (-M:dx:M))), x)
但我覺得arrayfun
不是一個很好的方法來做到這一點 - 它只是在Matlab中感覺尷尬/矯枉過正。
或者只是我,我不知道。
有沒有更好的方法來繪製此圖,而不是訴諸於arrayfun
,或者這是最好的方式?
+1這是一個很棒的答案/建議,謝謝!只是爲了澄清,當你說'exp(( - M:dx:M)。'* x)' - 那應該是[矩陣指數](http://en.wikipedia.org/wiki/Matrix_exponential ),還是在做別的事情?我從來沒有使用過矩陣指數! – Mehrdad
@Mehrdad:不,expm()是矩陣指數。 exp([某個矩陣])只是元素明確的指數。 –
Ahhhh更有意義,我想知道如何做到這一點!謝謝! :) – Mehrdad