Я только что обнаружил (к моему удивлению), что вызывает следующую функцию
function foo()
if false
fprintf = 1;
else
% do nothing
end
fprintf('test')
дает и ошибка Undefined function or variable "fprintf"
. Мое заключение заключается в том, что область переменных определяется до времени выполнения (в моем ограниченном понимании, как работает интерпретация компьютерных языков и, в частности, Matlab). Может ли кто-нибудь дать мне некоторую справочную информацию об этом?
Edit
Еще одна интересная вещь, о которой я забыл упомянуть выше, заключается в том, что
function foo()
if false
fprintf = 1;
else
% do nothing
end
clear('fprintf')
fprintf('test')
создает Reference to a cleared variable fprintf
.