func2func.m v1.0 (Jul 2009)

Updates anonymous function workspace. Workaround of STR2FUNC(FUNC2STR(f)) problem.
1.1K Downloads
Updated 29 Jul 2009

View License

Since MATLAB v7 we can use the new anonymous functionality to create small functions like:

>> A = 7;
>> F = @(x) A*x;
to get a simple multiplication by 7:
>> F(2)
ans =
14

But, if you change the A value, it is not updated on the F workspace:
>> A = 8;
>> F(2)
ans =
14

This is sometimes undesirable, and we guess that by using
>> G = str2func(func2str(F));
we fix this problem but then we get a warning
>> G(2)
??? Undefined function or method '@(x)A*x' for input
arguments of type 'double'.

So, one is forced to use the EVAL function. This FUNC2FUNC function uses EVAL and EVALIN to solve this problem, and the user can even specify the workspace to be used: 'base' or 'caller' or directly the function F workspace like:
>> clear A
>> F = func2func(F,'A',8);
>> F(2)
ans =
16

Besides it can be used to transform any array, cell, structure of functions names or handles into "updated" function handles.

Enjoy it!

Cite As

Carlos Adrian Vargas Aguilera (2024). func2func.m v1.0 (Jul 2009) (https://www.mathworks.com/matlabcentral/fileexchange/24876-func2func-m-v1-0-jul-2009), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2008b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Function Creation in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.0.0.0