2009-11-08 22 views

答えて

17

This pageが言う、機能

スクリプト対

スクリプトは、MATLAB ステートメントを含むM-ファイルです。 MATLABの ``関数 ''は、 の別のタイプのm-ファイルです。スクリプトと 関数の最大の違いは、関数には入力 と出力パラメータがあるということです。スクリプトファイル は、 がm-ファイルにハードコードされている変数でのみ動作します。 のように、より多くの機能を見ることができます フレキシブル。したがって、それらは異なる データに適用される汎用タスク に適したより多くの です。

スクリプトは、変更されないタスク に役立ちます。また、 の アクションの特定のシーケンス、例えば 特別なパラメータ値を持つ関数呼び出しを文書化する方法です。これは覚えにくいかもしれません。

スクリプトと 機能の間には微妙な違いがあります。スクリプトはキーボードマクロとして 考えることができますスクリプトの 名前を入力すると、その中に含まれる すべてのコマンドを使用すると、コマンドウィンドウにこれらの のコマンドを入力した場合と同様に を実行しています。 したがって、 スクリプトで作成されたすべての変数は、現在のセッション のワークスペースに追加されます。さらに、 スクリプト内の変数のいずれかが、現在の作業領域 の名前と同じ名前の場合、 の値は、スクリプトのアクションによって変更された です。 これはあなたの利点に使用することができます。また、 は、望ましくない副作用を引き起こす可能性があります。

対照的に、関数変数は、関数に対してローカルで です。 (例外 は、グローバル変数を使用して を宣言することが可能ですが、 ユーザーが明示的に対応する必要があります)。 関数のローカルスコープは、 のセキュリティと柔軟性を提供します。 明示的にグローバル変数として宣言された以外の の 関数との間で情報を取得する唯一の方法は、パラメータリスト内の変数 です。スクリプトと機能の主な違いの

一つのワークスペース内の変数へのアクセスです。たとえば、ワークスペースで、2つの変数a = 10b = 20を定義したとします。これらの変数は、メインプロンプトのコマンドラインで定義されます。

スクリプトファイル - display_mult.m

disp(a*b)display_multを入力

は、ワークスペース内すなわち10*20又は200abの製品を表示するであろう。

しかし、あなたが同じ名前のファイルに定義されてdisplay_multという関数が定義されている場合:

機能ファイル - display_mult.m

function display_mult(a,b) 
    disp(a*b); 
end 

次の2つが含まれなければならないでしょうが変数を関数呼び出しの引数として使用します。したがって、abは関数のワークスペースに存在しないため、display_multではなく、が今回は動作します。希望の結果を表示するdisplay_mult(a,b)を実行してそれらを含める必要があります。

簡単な説明

スクリプト内の各ステートメントは、MATLABのコマンドウィンドウでそれらを入力することと同じです。あらかじめ手作業でファイルに保存しているだけです!

関数は、引数を取り、メインワークスペースとは別の「新しい」ワークスペースです。

注:関数呼び出しの最後のendはオプションですが、項目を整理するために追加したいと思います。もちろん、ファイル内に複数の関数定義がある場合、それらはすべてendで終わらなければなりません。また、スクリプトと関数定義を同じファイルに含めることはできません。

+0

例? 私にいくつかの例を教えてもらえますか? – izzat

+0

例を追加し、ソリューションに展開しました – Jacob

関連する問題