MATLAB: Anonymous function from for loop

anonymous functionfor loopfunction

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)
The output is this:
f =
The problem is that the "i" is not changing. It should look like this:
f =
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!

Best Answer

Although it is showing i, as the variable, this is actually hardwired to the numeric value.
for ii = 1:n
ans =
ans =
ans =
ans =
In order to see the value for the captured variables in the anonymous function, you can use functions
fns = functions(f{1})
In order to take the derivative analytically, I would use Symbolic Math and syms
syms x ix
f = (x.^i).*(1-x)
f =
-x^4*(x - 1)
ans =
- 4*x^3*(x - 1) - x^4