- #1
mikeph
- 1,235
- 18
Hello
I am trying to store function handles in an array. First attempt was to do something like the following:
So I would store 5 function handles, each one using the <5x1> vectors "grid" and "value". Result:
Nonscalar arrays of function handles are not allowed; use cell arrays instead.
Next I try preallocating r as a cell (r = cell(1,5)). Result:
Conversion to cell from function_handle is not possible.
Basically I am having a lot of trouble with the cell arrays and function handles and I don't really know enough about them to be able to interpret the error messages as useful information.
Can anyone see what I'm doing wrong?---
Also, I am confused about function handles with more than one argument. Here I am using two (x(1) and x(2)), but when I type feval(r(1),2,3) to evaluate r(1) at x = [2,3] it says "Index exceeds matrix dimensions."!
Eventually I want to define a function handle with arbitrarily large number of arguments, so r(i) will vary for i=1:100 or so, and then a function all = @(x) [r(1); r(2); ... r(100);], to be able to evaluate all these functions at once. But that seems like a long way away right now.
Thanks,
Mike
I am trying to store function handles in an array. First attempt was to do something like the following:
Code:
for i = 1:5
r(i) = @(x) [grid(i) - x(1)*(x(2) + value(i))];
end
So I would store 5 function handles, each one using the <5x1> vectors "grid" and "value". Result:
Nonscalar arrays of function handles are not allowed; use cell arrays instead.
Next I try preallocating r as a cell (r = cell(1,5)). Result:
Conversion to cell from function_handle is not possible.
Basically I am having a lot of trouble with the cell arrays and function handles and I don't really know enough about them to be able to interpret the error messages as useful information.
Can anyone see what I'm doing wrong?---
Also, I am confused about function handles with more than one argument. Here I am using two (x(1) and x(2)), but when I type feval(r(1),2,3) to evaluate r(1) at x = [2,3] it says "Index exceeds matrix dimensions."!
Eventually I want to define a function handle with arbitrarily large number of arguments, so r(i) will vary for i=1:100 or so, and then a function all = @(x) [r(1); r(2); ... r(100);], to be able to evaluate all these functions at once. But that seems like a long way away right now.
Thanks,
Mike