2012-02-29 45 views
0

我有2个Matlab正在运行的实例。第一个是将数据写入.txt文件,另一个是读取该数据。正在更新时正在读取txt文件 - Matlab

有没有办法来验证.txt文件被访问,并相应地抛出异常/错误?

我发现第二个Matlab实例读取数据,但生成一个错误,如Horzcat等,而该.txt文件也正在更新。

fName = 'Test.txt' ; 

% Matlab Instance1 
mat = 1 + (2-1)*randn(100000,5) ;  mat = mat.' ; 

[fid, fMsg] = fopen(fName, 'at') ; 
if fid~=-1, fprintf(fid, '%.10f\t%.10f\t%.10f\t%.10f\t%.10f\r\n', mat(:)) ; end 
fclose(fid); 

    % Matlab Instance2 
    fid = fopen(fName); 
    C = textscan(fid, '%f %f %f %f %f', 'Delimiter', '\t'); 
    C=cell2mat(C); 
    fclose(fid); 
+1

阅读此主题http://stackoverflow.com/questions/3451343/atomically-creating-a-file-lock-in-matlab-file-mutex – Cheery 2012-02-29 22:55:41

回答

0

在写作实例打开文件进行写入之前创建一个名为“busyWriting.bla”文件,你写完后删除该文件。并在阅读实例附上条款if(~exist('busyWriting.bla','file')) ... end

+0

我喜欢你解。非常简单,完成这项工作。谢谢。 – Maddy 2012-03-02 17:24:15