Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2023.1.0 - 日本語


function

関数定義をオープンする

endfunction

関数定義を閉じる

説明

function <lhs_arguments>=<function_name><rhs_arguments>
  <statements>
endfunction

ただし,

<function_name>

は関数の名前を意味します.

<rhs_arguments>

は入力引数のリストを意味します.

  • (x1,...,xm)のように括弧で括った カンマ区切りの変数名の一覧となります. 最後の変数名はキーワードvararginと することも可能です (varargin 参照)

  • 関数に入力引数がない場合, () または 何も付けません.

<lhs_arguments>

は出力引数のリストを意味します.

  • これは,[y1,...,yn]のように角括弧で括った カンマ区切りの変数名の一覧となります. 最後の変数名はキーワード varargout (varargout 参照)とすること が可能です.

  • 関数が出力引数を持たない場合,[] を指定します. この場合,構文を以下のようにすることも可能です: function <function_name><rhs_arguments>

<statements>

Scilab命令(ステートメント)の集合を意味します. この構文は,インラインまたはスクリプトファイル(exec 参照)の中で 関数を定義する (functions 参照)ために使用できます. 古いバージョンのScilabとの互換性のため, function 定義のみを含むスクリプトファイルで定義された関数は, exec関数によりScilabに"ロードする"ことができます.

function <lhs_arguments>=<function_name><rhs_arguments> のシーケンスは複数の行に分割することができません. このシーケンスはカンマまたはセミコロンを終端に付けることにより, 同じ行に命令を続けることができます.

<function_name> は いくつかの構文規則に従う必要があることに注意してください (names参照).

function の定義はネストすることが可能です.

//インライン定義 (function参照)
function [x, y]=myfct(a, b)
x=a+b
y=a-b
endfunction

[x,y]=myfct(3,2)

//1行で関数定義
function y=sq(x),y=x^2,endfunction

sq(3)

//関数定義のネスト
function y=foo(x)
a=sin(x)
function y=sq(x), y=x^2,endfunction
y=sq(a)+1
endfunction

foo(%pi/3)

// スクリプトファイル内での定義 (exec参照)
exec SCI/modules/elementary_functions/macros/asinh.sci;

参照

  • functions — Scilab プロシージャおよび Scilab オブジェクト
  • exec — スクリプトファイルを実行する
  • names — Scilab 名前の構文

履歴

バージョン記述
6.0.0 function and endfunction are now protected: Assignments like function=1 or endfunction=2 are no longer possible.
Report an issue
<< funcprot Functions getd >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon May 22 12:43:16 CEST 2023