Errorhandling with Readmatrix trying to read data from a file

5 次查看(过去 30 天)
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.

请先登录,再进行评论。

回答(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 CenterFile Exchange 中查找有关 Naming Conventions 的更多信息

产品


版本

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by