Simulinkにおけるバイナリ形式datファイルの参照方法に関して
Show older comments
以下のようなヘッダーとデータレコードを持つようなバイナリ形式のdatファイルをsimulinkのMatlabFunctionブロック上で
読み込んで計算に用いる処理を行いたいです。
datファイル仕様サンプル――――――――――――――――――――――――――――――――――――――――――――――
ヘッダ1.1 4バイト(開始日時)
ヘッダ1.2 4バイト(データレコードNの個数)
データレコード1.1 4バイト→日時1日
データレコード1.2 4バイト→降水量200mm/h
データレコード2.1 4バイト→日時2日
データレコード2.2 4バイト→降水量300mm/h
データレコード3.1 4バイト→日時3日
データレコード3.2 4バイト→降水量0mm/h
・
・
・
データレコードN.1 4バイト→日時N日
データレコードN.2 4バイト→降水量XXXmm/h
datファイル仕様サンプル――――――――――――――――――――――――――――――――――――――――――――――
上記は例として示しており、ヘッダがファイルの先頭にあり、以降日付と降水量のデータレコードがN個並んでいるようなdatファイルの構造です。
なお、例として文字を用いていますが、中身はすべて整数です。
.mファイルであればfopen()でdatファイルを開いたのちfread()でレコードごとに読み込むことで
各日時における降水量を取得して計算に使うことができるのですが、MatlabFunctionで同様のプログラムを実行すると
ヘッダ等を読み込んだ際のサイズが[:?×1]となってしまい、「スカラー値が必要です。この式はサイズ [:? x 1] をもっています。」
とエラーが出てしまいます。
調べたところ、matファイルやスプレッドシートであれば、From Spreadsheetブロック等を使ってできそうではあるのですが、可能であればバイナリ形式のファイルから
直接読み出してSimulinkのMatlabFunctionで使えるようにしたいです。
MatlabFunctionブロック上で直接読めなくても、何かしらのブロックとMatlabFunctionブロックとをつなげて
実現可能であればご教授頂きたいです。
Accepted Answer
More Answers (0)
Categories
Find more on コード生成 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

