在MATLAB中,evalin
函数用于在指定的工作空间中执行字符串表达式。但有时我们可能想要避免使用evalin
函数,因为它会增加代码的复杂性和潜在的安全风险。下面是一个不需要输出参数的evalin
的等效方法的解决方案。
解决方案一:使用匿名函数
% 定义一个匿名函数,输入参数为字符串表达式
evalin_equiv = @(expr) evalin('caller', expr);
% 在当前工作空间执行表达式
x = 10;
evalin_equiv('y = 2*x');
disp(y); % 输出结果 20
解决方案二:使用feval
函数
% 定义一个函数,输入参数为字符串表达式
function evalin_equiv(expr)
% 在调用者的工作空间中执行表达式
evalin('caller', expr);
end
% 在当前工作空间执行表达式
x = 10;
feval(@evalin_equiv, 'y = 2*x');
disp(y); % 输出结果 20
这两种方法都能够在不使用evalin
函数的情况下在指定的工作空间中执行字符串表达式。它们的等效性取决于使用evalin
函数的上下文环境。
下一篇:不需要数据库访问的JWT身份验证