exponenta event banner

evalc

Оценка выражения MATLAB и получение результатов

Описание

пример

results = evalc(expression) оценивает код MATLAB ®, представленный expression и захватывает все, что обычно записывается в командное окно в results.

Примечание

Вопросы безопасности: при звонке evalc с ненадежным пользовательским вводом проверьте ввод, чтобы избежать непредвиденного выполнения кода. Примерами ненадежного пользовательского ввода являются данные, поступающие от пользователя, которого вы можете не знать, или от источника, которым вы не можете управлять. Если вам нужно решить эту проблему, рассмотрите следующие подходы:

  • Проверка входных данных для evalc. Во-первых, поиск разрешенных операций. Затем, если вы найдете другие операции, запретить выполнение.

  • Заменить evalc с альтернативой. Дополнительные сведения см. в разделе Альтернативы функции оценки.

Рекомендации по производительности: в большинстве случаев использование evalc функция также менее эффективна, чем использование других функций MATLAB и языковых конструкций, и полученный код может быть более трудным для чтения и отладки. Рассмотрите возможность использования альтернативы evalc.

[results,output1,...,outputN] = evalc(expression) дополнительно возвращает выходные данные из expression в указанных переменных.

Примеры

свернуть все

Использовать evalc для вычисления выражения magic(5) и сохранить результаты.

results = evalc('magic(5)')
results =
    
    '
     ans =
     
         17    24     1     8    15
         23     5     7    14    16
          4     6    13    20    22
         10    12    19    21     3
         11    18    25     2     9
     
     '

Входные аргументы

свернуть все

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

Пример: evalc('magic(5)')

Выходные аргументы

свернуть все

Захваченные выходные данные командного окна, возвращенные в виде символьного массива. Отдельные строки в захваченном выходе разделяются \n персонажи.

Выходные данные из вычисляемого выражения, возвращаемого как любой тип данных MATLAB.

Ограничения

  • При использовании evalc, функции diary, more, и input отключены.

  • Если вы используете evalc внутри анонимной функции, вложенной функции или функции, которая содержит вложенную функцию, вычисляемый expression не создает переменные.

Совет

  • Чтобы позволить синтаксическому анализатору MATLAB выполнять более строгие проверки кода и избегать незафиксированных ошибок и других неожиданных действий, не включайте выходные аргументы во входные данные evalc функция. Например, оператор result = evalc(['output = ',expression]) не рекомендуется.

    Вместо этого укажите выходные аргументы для evalc для хранения результатов вычисленного выражения. Например:

      [result,output] = evalc(expression)
Представлен до R2006a