Funny Behavior When Doing Substitution w/ matlabFunction Files
1 次查看(过去 30 天)
显示 更早的评论
I have a symbolic function that I convert to a numeric file using matlabFunction. Then, using the find_and_replace function from the file exchange I substituted out several arguments and replace them with elements of a matrix.
So whereas before my function was something like
function H = H(arg1a,arg2a,arg1b,arg2b)
H = arg1a + arg2a + arg1b + arg2b;
end
It is now
function H = H(arg_a,arg_b)
H = arg_a(1) + arg_a(2) + arg_b(1) + arg_b(2);
end
Two odd things happen:
- If I try to run the second function I get the error 'Not enough input arguments.'
- If I a) open the script b.) delete a semicolon c.) save d.) add the semicolon e.) save, then everything runs well.
Any ideas of what might be going on here?
0 个评论
采纳的回答
Walter Roberson
2015-12-17
MATLAB did not detect that you had modified the file and used the one that was already in its cache. It would also have worked if you had used
clear H
When-ever you use code to modify a .m file that you have executed, you should "clear" the function.
Note that there is a better way of doing what you did. See http://www.mathworks.com/help/symbolic/matlabfunction.html#zmw57dd0e82644 and the example "Now, convert an expression r to a MATLAB function whose second input argument is a vector."
2 个评论
Walter Roberson
2015-12-17
I think it might be relatively new. I only noticed that in the documentation a few months ago.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 String Parsing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!