0

私はこの機能を持っています:

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

TICTOCは tic および toc 関数のグローバル変数であるため、TICTOC =5は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

ありがとう。

4

2 に答える 2

0

assignin コマンドを使用して TICTOC 値を base に送信し、グローバル値を変更できると思います。assignin コマンドを使用して、関数から Base にパラメーターを送信します。

よろしくディリップ

于 2012-11-06T10:58:57.283 に答える
0

理由はわかりませんが、質問の答えは No です。確認したところ、上書きされていないようです。その理由は、tic、toc が組み込みの Matlab 関数であるためです。

于 2012-11-28T17:15:09.907 に答える