How can I pass variables to eval without error suppression ?
1 次查看(过去 30 天)
显示 更早的评论
I'm trying to not use the error suppression on a line and to eliminate the console output of a function using evalc.
a = 1; % Matlab tells me this value might be unused.
b = [1 1]; %ok<NASGU> <- I'm also trying to not use those where possible.
evalc('fun(length(b),b,a)');
Is there a way to acheive both of my goals ? I feel like I'm either stuck with the console output or the error suppression message.
Thanks for your help.
采纳的回答
Guillaume
2019-10-18
f = @() func(numel(b), a, b); %prepare function for call
evalc('f()'); %call function. () optional but make it clear we're calling a function
limits the content of eval to the struct minimum and avoids the mlint warning about unused variables (except maybe f)
0 个评论
更多回答(1 个)
Walter Roberson
2019-10-17
sprintf('%g', a, b);
This will not work for non-numeric variables.
4 个评论
Walter Roberson
2019-10-18
This is a new additional call whose output is intended to be thrown away. The only reason to add it is to silence the analyzer warning.
a=whatever
b=whatever
sprintf('%g', a, b); %use a and b to silence analysis
evalc('whatever')
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Performance and Memory 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!