MATLAB FunctionとS Functionについて

9 次查看(过去 30 天)
MATLAB FunctionとS Functionの違いを知りたいです。
MATLAB Functionは理解しておりますが、S Functionの機能があまり理解できておりません。
MATLAB FunctionはブロックをダブルクリックするとCコードで記述できますが、
S Functionはブロックパラメータが開き、コードを記載する箇所がありません。
S Functionもコードを記述して使用するものだと思っているのですが、違うのでしょうか。
  1 个评论
Atsushi Ueno
Atsushi Ueno 2024-3-6
S-Functionは昔から (R12:Simulink 4.0には既に) あります。 MATLAB Function は R2011a で導入されたそうです。
「Simulinkでコードを動かす」事自体はずっと変わりませんが、昔は「Simulinkに所望の機能が無いから自分でカスタムブロックを作成する」意味合いが強かったはずです。実際には「レガシーコードをSimulinkモデルに組み込んで動かす」使われ方が多く、更に現在では「Simulinkで作るけど部分的にコードを書きたい」要望も出てきました。また、MATLABやStateflowの既存資産をSimulinkに移行する要求もあります。その意味で便利さを追求して様々な「何とかFunctionブロック」が登場しました。

请先登录,再进行评论。

采纳的回答

Atsushi Ueno
Atsushi Ueno 2024-3-6
编辑:Atsushi Ueno 2024-3-6
>MATLAB FunctionとS Functionの違いを知りたいです。
まずブロック内で扱う言語が異なります(前者はMATLAB、後者はC/C++/Fortran)。
下の質問にもありますが、前者はコード1行書けば即動きますが、後者は色々とお膳立てが必要です。
>S Functionもコードを記述して使用するものだと思っているのですが、違うのでしょうか。
違いないです。専用のエディタが開かないだけです。S-Function Builderブロックなら専用のエディタが開きます。
現在(R2020a以降)は、C Function ブロックの方がMATLAB Functionブロックの使い勝手に近く使い易いです。
@Toshinobu Shintaiさんの下記ポストが分かり易いです。S-FunctionとMATLAB Functionの比較表だけ抜き出しました

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Simulink Function 的更多信息

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!