Level 5 MAT-files Formatに準拠し​て作成した.matフ​ァイルがMATLAB​のバージョンが変わる​とロードできなくなる​のですが、.matフ​ァイルのロードに関す​る仕様変更はありまし​たでしょうか?

3 ビュー (過去 30 日間)
遼
2023 年 10 月 13 日
コメント済み: covao 2023 年 11 月 19 日
外部アプリケーションでLevel 5 MAT-files Formatに則ってファイルを作成しています。発生している現象としては、データチャンクのMAT-File Data TypeにmiUTF8を指定してUTF-8でエンコードされたテキストデータを格納して作成した.matファイルをMATLABでロードしたとき、R2015b, R2017a, R2019aではファイルのロードができますが、R2021a, R2023aでは該当のデータチャンクをロードすることができず、読めるチャンクだけロードされてファイルは読み取れませんでしたとメッセージが表示されます。問題が発生しているファイルに対してwho関数を用いてファイル内に格納されている変数名を問い合わせると、ファイルロードできないデータチャンク部の変数名が返ってきます。このファイルロードができない現象はテキストデータに日本語が含まれるときに発生することを確認しています。問題の起きているデータチャンク部をバイナリで見てみたところ、UTF-8で正しくデータが詰められているので何が原因で発生しているのかわからない状態です。アプリケーションのバージョンで読める読めないがあることはわかりましたので、2019~2021にかけてファイルロードに関する仕様の変更があったのではないかと思っているのですが、そのような変更はありましたでしょうか?
ご存知の方がいらっしゃいましたら、お返事いただけますと幸いです。
余談ですが、miUTF16を指定してUTF-16でエンコードしたテキストデータで保存してみたところファイルロードはでき、期待していた文字列も表示することができました。ですが、MATLAB上でデータ部をみてみると文字列の後ろに大量のスペースがパディングされていました。ファイルのバイナリをみてもどこからそのスペースが発生しているが不明です。
  1 件のコメント
covao
covao 2023 年 11 月 19 日
MATLAB 2021aで、load関数にリモート MAT ファイルからのデータの読み込み機能が追加されてますが、発生している問題と関係しそうな仕様変更は、見当たりませんでした。
この問題と直接関連があるか分かりませんが、Bug ReportsによるとMATLAB 2021aあたりで、MAT-filesのロードでクラッシュするバグの修正があるようです。

サインインしてコメントする。

回答 (0 件)

カテゴリ

Help Center および File Exchangeワークスペース変数と MAT ファイル についてさらに検索

製品


リリース

R2023a

Community Treasure Hunt

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

Start Hunting!