関数と、その関数を呼び出すコードがほとんどないファイルが必要です。たとえば、次のようになります。
function foo()
...
end
foo()
このようなコードを「everything.m」という名前のファイル (1 つのファイル) に保存し、Matlab/Octave コンソールに「everything」と入力すると、関数foo
が定義されて呼び出されます。
関数と、その関数を呼び出すコードがほとんどないファイルが必要です。たとえば、次のようになります。
function foo()
...
end
foo()
このようなコードを「everything.m」という名前のファイル (1 つのファイル) に保存し、Matlab/Octave コンソールに「everything」と入力すると、関数foo
が定義されて呼び出されます。
この種のことを行う一般的な方法は、スクリプトを呼び出すことです。everything.m
% everything.m
foo();
使用できるようにする機能ごとに1つのファイル:
% foo.m
function foo()
...
end
次に、実行everything.m
すると、呼び出したいすべての関数が呼び出されます (さらに、その段階で実行する必要がある追加のタスクも含まれます)。
すべての関数が Matlab パス上にあるということは、それらが「定義済み」であることを意味します (Matlab コマンド プロンプトまたは他の関数内からアクセスできます)。これは「Matlabの方法」です:)
ファイルごとに複数の関数を持つことができることに注意してください。
% bar.m
function bar()
otherFunction(); % WORKS OK
end
function otherFunction()
...
end
一番上の関数だけが Matlab コマンド プロンプトに表示されます。
>> bar
>> % no error
>>
>> otherFunction
??? Undefined function or variable 'otherFunction'.
コードをスクリプトに記述して、関数と同じ名前で保存できると思います。たとえば、関数が foo の場合、ファイルを保存するときよりも、その名前は foo.m でなければなりません。コマンド ラインから foo を呼び出すと、関数が実行されます。入力引数なしで関数のみを呼び出したい場合は、キーワード "function" と "end" の間に必要なすべての変数を定義する必要があります。また、現在のフォルダーが関数を保存したフォルダーである場合にのみ、関数を正常に呼び出すことができます。その関数を別のディレクトリから呼び出すと、エラーが発生します。関数を「グローバル」に機能させるには、「matlab パス」に追加する必要があります。これが少し役立つことを願っています。