simulinkでMATLAB Functionを用いたmat fileの読み込み方法

5 views (last 30 days)
SS
SS on 4 Aug 2022
Commented: Shoumei on 14 Aug 2022
simulinkでmat fileを複数読み込むのにfrom file blockだと多すぎるので、MATLAB Functionを使用したいです。
loadを使っても読み込めないので、方法があったら教えてください。
  1 Comment
Shoumei
Shoumei on 12 Aug 2022
試しにやってみたら普通にできましたが、エラーが出ている場合はそれも書いていただくと回答が付きやすいと思います。

Sign in to comment.

Answers (1)

Shoumei
Shoumei on 12 Aug 2022
読み込めないのはloadコマンドに出力引数を付けていないからでしょうかね?
以下のようにやったら出来ますので、お試しあれ
まず2つのmatファイルを作成します。
A = [1:3]
B = 2
C = 3
D = [4:8]
save('test0.mat', 'A', 'B')
save('test1.mat', 'C', 'D')
MATLAB Functionブロック内に以下のように書きます。
function [y0, y1, y2, y3] = fcn
persistent param0 param1
if isempty(param0)
% ファイルアクセスは最初の1回だけとするためにpersistent変数に代入
% ここは最初の1回しか実行されない
param0 = load('test0.mat');
param1 = load('test1.mat');
end
y0 = param0.A;
y1 = param0.B;
y2 = param1.C;
y3 = param1.D;
結果
  3 Comments
SS
SS on 14 Aug 2022
続けて申し訳ないのですが、時系列でデータを出力したいと考えています。
何度か試しているのですが、データが時間ごとに出力されるのではなく、プログラム開始するとデータがすべて出力されてしまいます
Shoumei
Shoumei on 14 Aug 2022
すいませんが、仰られていることがよく理解できていません。 具体的にどういうことがやりたいのか書いてもらっても良いでしょうか?

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!