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

时间:2015-05-15 08:38:24

标签: string matlab if-statement conditional-statements

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

嗨!有没有办法做我上面写的东西? 在文本变量中,我需要编写一个条件(即使是复杂的条件,也使用&&和||),然后在IF语句中我只需插入变量。 我试过这个例子,但遗憾的是它没有用。你能解决吗?

编辑:给您更多信息!
我正在为一个项目测试不同的交易策略 在通用M文件中,我为每个需要测试的策略使用了一个函数。每个策略都获得有关当前情况的输入数据,然后该函数根据数据(以及根据保证金要求和独立于策略的其他内容)评估交易策略的行为。每个函数中唯一不同的是入口或出口规则。 每个策略都有确定的进入和退出条件(例如,"在...时打开多头头寸......"或者......当......或......时关闭空头头寸&#34)
。 在主M文件中,我使用循环来模拟经过的时间,但我想实现一个进一步的外部循环,它表示测试的策略的数量。 此外,到目前为止,IF语句中的每个条件都是手工编写的,我想获得一个独特的函数(现在每个策略不再为1),根据策略的循环索引,它将通过进入和退出从字符串矩阵中获取的条件。

我希望有可能做到这一点。

1 个答案:

答案 0 :(得分:7)

我认为这就是你想要的:

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

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