几天前我开始学习一点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