Если вы попытаетесь запустить код, в котором отсутствует скобка ((
, )
, [
, ]
, {
или }
), скрипт или функция выдает ошибку:
Ошибка: файл: XXX.m Строка: 1337 Столбец: 42
Неверное выражение.При вызове функции или индексации переменной используйте скобки.В противном случае проверьте наличие несовпадающих разделителей.
Кажется, это нужно сделать перед выполнением.Мой редактор установлен на «Приостановить ошибки», но, в отличие от других ошибок (например, ссылки на несуществующую переменную), он не «перепрыгивает» на строку с ошибкой.
Это заставило меня задуматься.Сначала я подумал, что MATLAB может подсчитать все типы скобок и проверить, есть ли столько открывающих, сколько есть закрывающих для определенного типа.Однако, похоже, что это не так:
Ошибка определяет правильную строку и столбец.Процедура, описанная выше, не сможет этого сделать - поскольку она смотрит на круглые скобки на уровне файлов , а не в виде пар.
Это будет включать скобкииспользуется в строках, которые, конечно, могут быть разбалансированными.
Мой вопрос: Как MATLAB проверяет, сбалансированы ли скобки или, в более общем смысле, какMATLAB определяет правильность выражения ?