Как преобразовать значение 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 также может выполнять работу по преобразованию строки в числа.

Другие вопросы по тегам