Как преобразовать значение EditField в массив ячеек?
Я хочу получить от пользователя массив ячеек, содержащий количество нулей и полюсов каждой передаточной функции в приложении идентификации системы, которое я проектирую в конструкторе приложений MATLAB.
Пользователь вводит что-то вроде этого:
{[2,1], [1,0]; [1,0], [2,1]}
EditField
или же TextArea
обрабатывает этот ввод как массив символов или строку, но я хочу преобразовать его в массив чисел, а не строк. Как это возможно?
1 ответ
Ты можешь использовать eval
оценить строку, чтобы получить результирующие числа. Это работает, если у него есть числа, переменные и функции, доступные из рабочей области, в которой вы работаете eval
, См. Документацию по eval по адресу https://www.mathworks.com/help/matlab/ref/eval.html. Если в выражении есть переменная, например, как, {[2,1], [1,0]; [1,0], a}
с a
определяется в базовой рабочей области, то вам нужно использовать evalin
, evalin
позволяет вам указать рабочую область, где выражение должно быть оценено.
Наконец, если это не массив ячеек и содержит только массив чисел, то str2num
также может выполнять работу по преобразованию строки в числа.