3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

かくも読みにくい mファイル

Posted at

##1.はじめに
今、赤の他人のmatlabスクリプトを解読しているのですが、異様に読みにくいので、記事に書くことにしました。

##2.どういうスプリプトなのか
シンプルな形で書きますと、次のようになります。

abc.m
a = 1;
b = a + 2;
cde;

d = c + b;
disp(d);

こんな感じです。ああ、それか!と思った方も多いかと思われます。
変数cが定義されないまま、下から2行目で唐突に出てきて、bと加算されて、dに代入されます。
このスクリプトを実行してエラーが出ないのは、途中でcde.mというスクリプトを読みに行き、

cde.m
c = 4;

みたいな感じに、cに値を代入して、abc.mに戻ってくるからです。
このくらいの長さだったら、それほど問題なく読めてしまうのですが、これがもっと長いスプリプトで、cde.m のような ”ネズミ穴”(とりあえず、ネズミ穴と命名しました)が何か所もあると、どこからネズミ(変数)が出てくるのかを突き止めるのが一苦労となります。
いつの間にかネズミが増殖しているという事態ですね。
「引数」とか「戻り値」がない荒涼とした原野みたいな世界。

##3.さらに、
また、このネズミ穴にもぐるときには、もとのスクリプト(この場合abc.m)の変数を全部持っていくので、例えば、

cde.m
c = 4;
b = b - c;

こんな感じにも書くことができ、穴に入る前と、出てきてからではbの値が変わっているということになります。

##4.ということで、
悪夢のようなスクリプトと闘っているわけですが、これって「MATLABあるある」なんですかね。

以上です。
短くてすみません。

3
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?