是否有可能覆盖全局变量?

时间:2012-11-06 05:27:03

标签: matlab

我有这个功能:

function example(y)
global TICTOC;
tic
TICTOC=5;
toc
end

我希望 TICTOC = 5 更改 toc 的结果,因为 TICTOC 是tic和toc函数中的全局变量;但这种情况并非如此;有谁知道原因?

我想知道答案,因为我担心声明一个全局变量,它的名字已在其他一些函数中声明为全局变量,我不知道。

我在matlab 2008b帮助中看到了这个功能

function tic
%    TIC Start a stopwatch timer.
%        TIC; any stuff; TOC
%    prints the time required.
%    See also: TOC, CLOCK.
global TICTOC
TICTOC = clock;

function t = toc
%    TOC Read the stopwatch timer.
%    TOC prints the elapsed time since TIC was used.
%    t = TOC; saves elapsed time in t, does not print.
%    See also: TIC, ETIME.
global TICTOC
if nargout < 1
    elapsed_time = etime(clock, TICTOC)
else
    t = etime(clock, TICTOC);
end

感谢。

2 个答案:

答案 0 :(得分:0)

我认为您可以使用assignin命令将TICTOC值发送到base,从而更改全局值。 我使用assignin命令将参数从函数发送到Base。

此致 迪利普

答案 1 :(得分:0)

我不知道为什么,但我的问题的答案是否定的。我检查了它,似乎它没有被覆盖。原因必须是因为tic,toc是内置的Matlab函数