Azzera filtri
Azzera filtri

function が 全ての 例文 及​び コマンド入力から​の 応答も エラーと​なります 教えて下さ​い 

1 visualizzazione (ultimi 30 giorni)
Yoshifumi Harada
Yoshifumi Harada il 17 Giu 2023
Spostato: Atsushi Ueno il 5 Ott 2023
function ave = calculateAverage(x)
ave = sum(x(:))/numel(x);
end
このあとコマンドラインから
 z = 1:99;
ave = calculateAverage(z)
入力しても機能しません 教えてください
  2 Commenti
Atsushi Ueno
Atsushi Ueno il 17 Giu 2023
Spostato: Atsushi Ueno il 5 Ott 2023
  • > R2016b 以降は、スクリプトに関数を定義するコードを含めることができます。
  • > これらの関数は "ローカル関数" と呼ばれます。
  • > すべてのローカル関数を、ファイルの末尾、スクリプト コードの後に追加します。
という事で、スクリプト部分とローカル関数部分の順序を入れ替えると期待通りに動作します。
z = 1:99;
ave = calculateAverage(z)
ave = 50
function ave = calculateAverage(x)
ave = sum(x(:))/numel(x);
end
Atsushi Ueno
Atsushi Ueno il 17 Giu 2023
Spostato: Atsushi Ueno il 5 Ott 2023
>このタイプの関数は、コマンド ラインではなく、ファイル内で定義しなければなりません。
という事で、関数を関数名と同じ名前のmファイルに保存すると動作する様になります。
ls % calculateAverage.m としてファイルに保存する
calculateAverage.m
z = 1:99;
ave = calculateAverage(z)
ave = 50

Accedi per commentare.

Risposte (0)

Categorie

Scopri di più su プログラミング in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!