Как преобразовать значение EditField в массив ячеек?

Я хочу получить массив ячеек от пользователя, содержащий количество нулей и полюсов каждой передаточной функции в приложении для идентификации системы, которое я разрабатываю в конструкторе приложений MATLAB.

Пользователь вводит что-то вроде этого:

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

EditField или TextArea обрабатывает этот ввод как массив символов или строку, но я хочу повторно преобразовать его в массив ячеек чисел, а не строки. Как это возможно?


person MHTB    schedule 30.01.2019    source источник
comment
Один из способов - отправить это в eval и получить массив ячеек в качестве вывода.   -  person Navan    schedule 30.01.2019
comment
@Navan Хорошее предложение! Спасибо. Опубликуйте это как ответ, если хотите.   -  person MHTB    schedule 30.01.2019


Ответы (1)


Вы можете использовать eval для оценки строки и получения результирующих чисел. Это работает, если у него есть числа, переменные и функции, доступные из рабочей области, где вы запускаете eval. См. документацию по eval по адресу https://www.mathworks.com/help/matlab/ref/eval.html. Если в выражении есть переменная, например, {[2,1], [1,0]; [1,0], a} с a, определенной в базовой рабочей области, вам нужно использовать evalin. evalin позволяет указать рабочую область, в которой выражение должно быть оценено.

Наконец, если это не массив ячеек и содержит только массив чисел, тогда str2num также может выполнить работу по преобразованию строки в числа.

person Navan    schedule 31.01.2019