problem with anonymous function in executable
1 view (last 30 days)
Show older comments
Emre Kocatulum
on 16 Jul 2015
Commented: Muthu Annamalai
on 17 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.
function testMain
kuzu = zeros(5,1);
anonymousFunction = testClass.anonymousFunction;
kuzu2 = anonymousFunction(kuzu)
end
classdef testClass
properties (Constant)
anonymousFunction = @(x) replaceZeroWithNaN2(x)
end
end
function output = replaceZeroWithNaN2(input)
input(input==0) = NaN;
output = input;
end
All the files are in the same directory. After compilation I get the following error:
Undefined function 'replaceZeroWithNaN2' for input arguments of type 'double'
0 Comments
Accepted Answer
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.
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.
Goodluck.
2 Comments
Muthu Annamalai
on 17 Jul 2015
Glad to know this worked for you Emre.
I encourage you to still file a customer report with Mathworks technical support.
More Answers (0)
See Also
Categories
Find more on Java Package Integration 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!