2013-10-23 58 views
1

如何在Matlab中做如下測試?在Matlab中做beta減少?

enter image description here

我的目標是避免重複作業和懶惰評估的東西 - 也許相關的問題multiple step anonymous functions

顯然,大多數功能特性僅在Matlab2013B中受支持。

+0

關於函數式編程的鏈接指的是符號工具箱,而不是標準matlab。函數式編程在matlab本身中有一些有限的支持([匿名函數](http://www.mathworks.com/help/matlab/matlab_prog/anonymous-functions.html),[mapping](http:// www。 mathworks.com/help/matlab/ref/arrayfun.html)函數到數組,這對你來說足夠了嗎? –

+0

@hhh你能否澄清爲什麼Dan的答案不適合?你的問題似乎沒有問題。 –

回答

1

難道這就是你的意思是:

x = 3; 
f = @(y)(x+x*y); 

現在f(y)是功能3+3*y

所以,你可以把它放進一個循環,例如:

f = {}; 
for x = 1:5 
    f{x} = @(y)(x+x*y); 
end; 

,然後找到f(2)爲每個x

cellfun(@(y)y(2), f) 

ans = 
    3 6 9 12 15 
+0

@hhh我不明白這是怎麼相關的,請發帖鏈接 – Dan

+0

@hhh你打開MuPAD嗎?你有象徵性的工具箱嗎?我仍然沒有看到你的OP的相關性 – Dan

+0

@hhh你可以做一個if聲明:http://blogs.mathworks.com/loren/category/functional-programming/ – Dan

0

重申丹的回答這些值,這是我所得到的在Octave:

octave:1> f = @(x) @(y) x + y 
f = 
    @(x) @(y) x + y 

octave:2> g = f (2) 
g = 
    @(y) x + y 

octave:3> g (3) 
ans = 5 

但我不知道Matlab ...