Matlab评估包含操作的字符串

时间:2013-12-12 15:46:48

标签: string matlab struct mapping eval

我有第一个结构,如:

struct1.Vx.Value=10;  
struct1.Vy.Value=2;

在第二种结构中,我将操作写为字符串:

struct2.param1.map='sqrt(Vx^2+Vy^2)';  
struct2.param2.map='Vx+Vy';

最有效的设置方法是什么:

struct2.param1.value= [sqrt(10^2+2^2)=10.198]  
struct2.param2.value= [10+2=12]

我在struct1上使用assigninfieldnames找到了一个解决方案来创建变量Vx = 10和Vy = 2 然后,我在struct2上使用eval()来执行操作 好吧,它有效,但我不喜欢这个解决方案阅读eval()...

上的内容

有没有更有效的方法来做我想要的事情?

谢谢!

1 个答案:

答案 0 :(得分:0)

我设法找到一个好的解决方案,以不同的方式形成我的数据:

 s.Vx = 10;
 s.Vy = 2;

 Map1 = 'sqrt( s.Vx^2+ s.Vy^2)';
 FunctionMap1 = str2func( [@(s) Map1] );

然后我可以简单地用以下方法评估我的函数句柄:

 Value = FunctionMap1(s)