如何将 EditField 值转换为元胞数组?

How to convert EditField value to cell array?

我想从用户那里获取一个元胞数组,其中包含我在 MATLAB 的应用程序设计器中设计的系统识别应用程序中每个传递函数的零点和极点的数量。

用户输入如下:

{[2,1], [1,0]; [1,0], [2,1]}

EditFieldTextArea 将此输入视为字符数组或字符串,但我想将其重新转换为 数字 的元胞数组,而不是 字符串 。这怎么可能?

您可以使用 eval 计算字符串以获得结果数字。如果它具有可从您所在的工作区访问的数字、变量和函数,则此方法有效 运行 eval。请参阅 https://www.mathworks.com/help/matlab/ref/eval.html 处的 eval 文档。如果表达式中有一个变量,例如 {[2,1], [1,0]; [1,0], a} 和基础工作区中定义的 a,那么您需要使用 evalinevalin 允许您指定需要计算表达式的工作区。

最后,如果它不是元胞数组并且只包含一个数字数组,那么 str2num 也可以完成将字符串转换为数字的工作。