##1.はじめに
今、赤の他人のmatlabスクリプトを解読しているのですが、異様に読みにくいので、記事に書くことにしました。
##2.どういうスプリプトなのか
シンプルな形で書きますと、次のようになります。
a = 1;
b = a + 2;
cde;
d = c + b;
disp(d);
こんな感じです。ああ、それか!と思った方も多いかと思われます。
変数cが定義されないまま、下から2行目で唐突に出てきて、bと加算されて、dに代入されます。
このスクリプトを実行してエラーが出ないのは、途中でcde.mというスクリプトを読みに行き、
c = 4;
みたいな感じに、cに値を代入して、abc.mに戻ってくるからです。
このくらいの長さだったら、それほど問題なく読めてしまうのですが、これがもっと長いスプリプトで、cde.m のような ”ネズミ穴”(とりあえず、ネズミ穴と命名しました)が何か所もあると、どこからネズミ(変数)が出てくるのかを突き止めるのが一苦労となります。
いつの間にかネズミが増殖しているという事態ですね。
「引数」とか「戻り値」がない荒涼とした原野みたいな世界。
##3.さらに、
また、このネズミ穴にもぐるときには、もとのスクリプト(この場合abc.m)の変数を全部持っていくので、例えば、
c = 4;
b = b - c;
こんな感じにも書くことができ、穴に入る前と、出てきてからではbの値が変わっているということになります。
##4.ということで、
悪夢のようなスクリプトと闘っているわけですが、これって「MATLABあるある」なんですかね。
以上です。
短くてすみません。