2012-02-29 46 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