Нет способа сделать константы переменных в MATLAB, кроме как созданием класса с константной (и статической?) Переменной-членом.Но даже тогда вы можете сделать:
t = const_table_class.table;
t(1,1) = 0; % Created and modified a copy!
Причина, по которой функции не нужно отмечать свои входные данные как const, заключается в том, что аргументы всегда передаются по значению.Таким образом, локальная модификация не изменяет данные в рабочей области вызывающей стороны.const
- это то, чего просто не существует в языке MATLAB.
С другой стороны, вы можете быть уверены, что ваши данные не будут изменены ни одной из вызываемых вами функций.Таким образом, пока функция, которая владеет таблицами, не изменяет их, они будут оставаться постоянными.Любая функция, которой вы передаете эти таблицы, если они пытаются изменить их, создаст локальную копию для изменения.Это только локально проблема.Память, используемая этой копией, будет освобождена при выходе из функции.Это будет ошибка в функции, но не повлияет на код вне этой функции.