Anonymous function from for loop
古いコメントを表示
Hello, I am having trouble creating an anonymous function matrix using a for loop. My code looks like this:
n=4; %Or w/e number. Could be 100.
for i = 1:n
f{i,1} = @(x) (x.^i).*(1-x)
end
The output is this:
f =
@(x)(x.^i).*(1-x)
@(x)(x.^i).*(1-x)
@(x)(x.^i).*(1-x)
@(x)(x.^i).*(1-x)
The problem is that the "i" is not changing. It should look like this:
f =
@(x)(x.^1).*(1-x)
@(x)(x.^2).*(1-x)
@(x)(x.^3).*(1-x)
@(x)(x.^4).*(1-x)
Any ideas? Also, I will later have to take the derivative of each row. Is there a simple way to do it? Like this maybe:
derivative(1) = der(f{1})
derivative(2) = der(f{2})
Thanks in advance!
採用された回答
その他の回答 (1 件)
Gethal
2014 年 10 月 28 日
2 件のコメント
Sean de Wolski
2014 年 10 月 28 日
You can multiply the output of anonymous functions
f(1)*f(2)
But since the function requires an input, multiplying it directly doesn't work. It sounds to me like the symbolic approach is the best for your overall use case. Solve everything symbolically and then subs in the values when you need them.
Gethal
2014 年 10 月 28 日
カテゴリ
ヘルプ センター および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!