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

Pet*_*one 0 matlab

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

v1 - fft(v2) = 0
Run Code Online (Sandbox Code Playgroud)

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

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

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

Oli*_*rth 5

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

注1:使用eval()了"正常"的节目被认为是不好的风格; 它应该只用于这样的元编程任务.

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

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