主要内容

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

関数のファイルでの作成

スクリプトと関数のどちらでも、プログラム ファイルに格納することでコマンドのシーケンスを再利用できます。スクリプトは最もシンプルなタイプのプログラムで、コマンド ラインで入力するとおりのコマンドを格納します。関数はさらに高い柔軟性を提供します。その主な理由は、入力値を渡して出力値を返すことができるからです。たとえば、次の事实という関数は、数値 (N) の階乗を計算し、結果 (F) を返します。

作用f=事实(n)f=产品(1:n);终止

このタイプの関数は、コマンド ラインではなく、ファイル内で定義しなければなりません。多くの場合、関数はそれぞれ独自のファイルに格納します。その場合、ベスト プラクティスとしては関数とファイルに同じ名前 (この例では事实) を使用します。これは、MATLAB®がプログラムをファイル名に関連付けるためです。ファイルは現在のフォルダーか MATLAB検索パス上のフォルダーに保存します。

MATLABと共にインストールされる関数と同じ構文ルールを使用して、コマンド ラインから関数を呼び出すことができます。たとえば、5.の階乗は次のように計算します。

x=5;y=事实(5)
y=120

R2016b以降、関数を格納するもう 1.つのオプションとして、スクリプト ファイルの末尾に関数を含めることができます。たとえば、いくつかのコマンドと事实および烫发の 2.つの関数を含むmystats.mというファイルを作成します。スクリプトは (3,2) の置換を計算します。

x=3;y=2;z=perm(x,y)作用p=perm(n,r)p=fact(n)/fact(n-r);终止作用f=事实(n)f=产品(1:n);终止

コマンド ラインからスクリプトを呼び出します。

mystats
z=6

関数定義の構文

各関数の 1.行目は定義ステートメントです。これには以下の要素が含まれます。

作用キーワード (必須)

キーワードには小文字を使用します。

出力引数 (オプション)

関数が 1.つの出力を返す場合、作用キーワードの後に出力名を指定できます。

作用myOutput=myFunction(x)

関数が複数の出力を返す場合、出力名を大かっこで囲みます。

作用[1,2,3]=myFunction(x)

出力がない場合は省略できます。

作用myFunction(x)

または、空の大かっこを使用できます。

作用[]=myFunction(x)

関数名 (必須)

有効な関数名は、変数名の規則に準拠します。名前は文字で始まり、文字、数字、アンダースコアの組み合わせを使用できます。

メモ

混乱を避けるため、関数ファイル名とファイル内の最初の関数は同じ名前にします。MATLABはプログラムを関数名ではなく、"ファイル"の名前に関連付けます。スクリプト ファイルに、ファイル内の関数と同じ名前を付けることはできません。

入力引数 (オプション)

関数が何らかの入力を受け取る場合、関数名の後にそれらの引数名を小かっこで囲みます。入力はコンマで区切ります。

作用y=myFunction(一、二、三)

入力がない場合、小かっこを省略できます。

ヒント

複数の入力または出力引数を指定して関数を定義する場合、必須引数を最初にリストします。この順序付けにより、オプションの引数を指定せずに関数を呼び出すことが可能になります。

関数とファイルの内容

関数の本体には、有効な MATLAB式、制御フロー ステートメント、コメント、空行、入れ子関数を含めることができます。関数内に作成した変数は、ベース ワークスペースとは別の、その関数に固有のワークスペース内に格納されます。

プログラム ファイルには複数の関数を含めることができます。ファイルに関数定義のみが含まれる場合、最初の関数がメイン関数であり、MATLABがファイル名と関連付ける関数です。メイン関数またはスクリプト コードの後の関数は、ローカル関数と呼ばれます。ローカル関数は、ファイル内でのみ使用できます。

终止ステートメント

関数は、终止ステートメント、ファイルの終了またはローカル関数の定義行のいずれかが最初に発生した時点で終了します。终止ステートメントは次の場合に必要です。

  • ファイル内のいずれかの関数に入れ子関数 (親関数内に完全に含まれている関数) が含まれている。

  • 関数が関数ファイル内のローカル関数であり、ファイル内のローカル関数のいずれかが终止キーワードを使用している。

  • 関数がスクリプト ファイル内のローカル関数である。

これはオプションの場合もありますが、コードの可読性を向上させるには、终止を使用します。

参考

関連するトピック