通过函数自动检测工作空间变量之间的关系

时间:2011-01-06 05:54:08

标签: matlab

我正在尝试编写一个函数来检测我在工作区中获得的变量之间的这种关系:

v1 - fft(v2) = 0

其中v1,v2是我工作区的变量。

有时我需要知道哪些变量具有一定的数值​​关系。如果我有三十岁,我不想以“手动方式”寻找这种关系,只是为每对不同的变量引入一个句子。

我想要一个函数,我在其中介绍(或者我每次需要时修改此函数)这个句子(例如我之前写的)和函数显示我正在寻找的变量对。 有谁知道怎么做?

1 个答案:

答案 0 :(得分:5)

您可以使用who()以编程方式获取当前存在的变量列表。然后,您可以使用eval()获取其值。此时,您可以使用一个相当简单的嵌套循环来迭代所有可能的对,寻找这种关系。

注1:使用eval()进行“正常”编程被视为不良风格;它应该只用于这样的元编程任务。

注2:如果工作区中有N个变量,则会有N^2个有序对。如果N很大,这可能需要一段时间才能迭代。

注3:您实际上是在寻找变量之间的相等性,这在浮点时可能不是特别可靠。