problem with anonymous function in executable
1 view (last 30 days)
Emre Kocatulum on 16 Jul 2015
I have a three files that work perfectly. However when I compile them matlab behaves as if I didn't include one of the files even though it is included in the deployment.
kuzu = zeros(5,1);
anonymousFunction = testClass.anonymousFunction;
kuzu2 = anonymousFunction(kuzu)
anonymousFunction = @(x) replaceZeroWithNaN2(x)
function output = replaceZeroWithNaN2(input)
input(input==0) = NaN;
output = input;
All the files are in the same directory. After compilation I get the following error:
Undefined function 'replaceZeroWithNaN2' for input arguments of type 'double'
Muthu Annamalai on 16 Jul 2015
While I don't have a explanation of why you are seeing this error, I have a suggestion to rewrite your code.
Generally function handles are useful in context of algorithms | | , i.e. sort algorithm needs a comparator etc, integration algorithm needs a value of function at a point (x,y) etc.
For all other purposes I recommend using static methods : see examples of static methods .
Can you rewrite your code to make ' replaceZeroWithNaN2 ' a static method of class ' testClass ' and see what happens? I assume the codegenerator will have a easier time resolving that symbol.