Errorhandling with Readmatrix trying to read data from a file

8 ビュー (過去 30 日間)
Dennis G
Dennis G 2022 年 7 月 27 日
回答済み: Rishav 2023 年 9 月 7 日
I am using the "readmatrix" function in a matlab function in simulink to repeatedly read data out of a file called output.dat.
This works, but sometimes another Software is accessing the file for a quick moment so im getting a error message that states that permission to open the file is denied.
Is it possible to handle errors by editing the try catch part in the "readmatrix.m" directly? I want the function to try to access the file and in case it is not accessible then it should try again until it is accessable. How can i implement this best?
Thanks in advance.
  5 件のコメント
Dennis G
Dennis G 2023 年 8 月 17 日
Hello Damien,
yes i solved the issue. I did errorhandling differently: First i made sure that the file i want to read in is actually not occupied by the other software. This i did by using "fopen":
open=fopen('output.dat', 'r');
If open is -1 then it is occupied and i will just try again (loop) until the value is not -1 anymore.
Another thing i did was checking open for "integrity", so i checked if it contains the array i expect in the expected format (for example with "if open =~ isequal(size(output), [6 2])...).
This helped.
Damien Pecher
Damien Pecher 2023 年 8 月 17 日
Thanks for the tips! I will try this in my code.

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

回答 (1 件)

Rishav
Rishav 2023 年 9 月 7 日
Hi Dennis,
I am glad that your issue is resolved.
Apparently, the file that you want to read was not occupied by the other software and you used "fopen" for the same:
open = fopen('output.dat','r');
If open is -1, then it's occupied and try running the loop again until the value is not -1 anymore.

カテゴリ

Help Center および File ExchangeNaming Conventions についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by