Matlab:使用字符串作为if语句的条件


cond = 'a==1';
a=1;
if (cond)
b=0;
end

你好!有办法做到我上面写的事情吗?在文本变量中,我需要写一个条件(即使是复杂的条件),使用&&和||也是),然后在IF语句中插入变量。我试过这个例子,但遗憾的是它不起作用。你能解出来吗?

编辑:更多信息给你!
我正在为一个项目回溯测试不同的交易策略。在通用m文件中,我为需要测试的每个策略使用一个函数。每个策略都输入有关当前情况的数据,然后该函数根据这些数据(也根据保证金要求和其他独立于策略的东西)评估交易策略的行为。在每个函数中唯一不同的是进入或退出规则。每种策略都有确定的进场和退出条件(例如,"在……时开多头头寸")。或"在……时平仓"。或者……")。
在主m文件中,我使用一个循环来模拟时间的流逝,但我想实现一个进一步的外部循环,它代表测试策略的数量。此外,到目前为止,if语句中的每个条件都是手工编写的,我想获得一个唯一的函数(现在每个策略不再有1),根据策略的循环索引,将传递从字符串矩阵中获取的进入和退出条件。

我希望这是可能的。

我想这就是你想要的:

cond = 'a==1';
a=1;
if eval(cond)
  b=0;
end

然而,eval是邪恶的。尽量不要使用:http://blogs.mathworks.com/loren/2005/12/28/evading-eval/

相关内容

  • 没有找到相关文章

最新更新