Matlab:使用字符串作为if语句的条件
Matlab: using a string as condition for if statement
cond = 'a==1';
a=1;
if (cond)
b=0;
end
嗨!有没有办法做我上面写的事情?
在文本变量中,我需要编写一个条件(即使是一个复杂的条件,也使用 && 和 ||)然后在 IF 语句中我只需插入变量。
我试过这个例子,但遗憾的是它没有用。你能解决吗?
编辑:更多信息给你!
我正在为一个项目回测不同的交易策略。
在一般的 M 文件中,我为每个需要测试的策略使用了一个函数。每个策略获取有关当前情况的输入数据,然后函数根据数据(以及保证金要求和其他独立于策略的内容)评估交易策略的行为。每个函数唯一不同的是进入或退出规则。
每个策略都有确定的进入和退出条件(例如,"open a long position when ... and ..." 或 "close a short position when ... or ...")。
在主 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/
cond = 'a==1';
a=1;
if (cond)
b=0;
end
嗨!有没有办法做我上面写的事情? 在文本变量中,我需要编写一个条件(即使是一个复杂的条件,也使用 && 和 ||)然后在 IF 语句中我只需插入变量。 我试过这个例子,但遗憾的是它没有用。你能解决吗?
编辑:更多信息给你!
我正在为一个项目回测不同的交易策略。
在一般的 M 文件中,我为每个需要测试的策略使用了一个函数。每个策略获取有关当前情况的输入数据,然后函数根据数据(以及保证金要求和其他独立于策略的内容)评估交易策略的行为。每个函数唯一不同的是进入或退出规则。
每个策略都有确定的进入和退出条件(例如,"open a long position when ... and ..." 或 "close a short position when ... or ...")。
在主 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/