function_handler matrix
Show older comments
for i = 1:1:3
px(i) = @(x) x(i);
py(i) = @(x) x(i+3);
end
Then the error occurs:
Error using horzcat
Nonscalar arrays of function handles are not allowed; use
cell arrays instead.
So when I change the code:
for i = 1:1:3
px{i} = @(x) x(i); % cell array
py{i} = @(x) x(i+3);
end
But, in this case, I can not calculate with the cell entries:
fun = @(x)((px{1}-px{2}).^2+(py{1}-py{2}).^2).^.5;
fminsearch(fun, [0,0,0,0]);
Then error occurs:
Undefined operator '-' for input arguments of type
'function_handle'.
Error in kequal_4sub2>@(x)((px{1}-px{2}).^2+(py{1}-py{2}).^2).^.5
Error in fminsearch (line 189)
fv(:,1) = funfcn(x,varargin{:});
Error in kequal_4sub2 (line 7)
fminsearch(myfun, [0,0,0,0])
How can I make it possible to calculate with the cell entries?
Accepted Answer
More Answers (0)
Categories
Find more on Performance and Memory in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!