2012-09-02 111 views
0

我想在某些特定文件夾的不同文件中定期寫入代碼輸出。我使用 代碼如下:寫入多個輸出文件matlab

for i=1:m 
% some other things 
    if (mod(i,1000)==0) 
     y=[1:dx:n_x;c_initial.']; 
     fn = ['/home/alekhine' num2str(i) '.dat']; 
    fid=fopen(fn); 
     fprintf(fid,'%6.4f %12.8f\n',y); 

     fclose(fid); 
     end 
end 

但我從MATLAB收到錯誤如下

Error using ==> fprintf 
Invalid file identifier. Use fopen to generate a valid file 
identifier. 

。代碼中有什麼錯誤?任何幫助將不勝感激。

+0

它有助於發佈錯誤 – mathematician1975

+0

你好像在'/ home/alekhine'之後缺少一個路徑分隔符。 – Thor

+0

@ mathematician1975,謝謝你的指導。發佈了錯誤。 – alekhine

回答

1

你似乎在路徑一代缺少路徑分隔符:

fn = ['/home/alekhine' num2str(i) '.dat']; 

應該是:

fn = ['/home/alekhine/' num2str(i) '.dat']; 
2

你沒有給出fopen函數的參數permission,所以它只打開以供讀取。

有關permission的有效值,請參閱文檔(http://www.mathworks.com/help/techdoc/ref/fopen.html)。

+0

非常感謝Warren的回覆。似乎我沒有正確設定路徑。您提供的參考資料對未來的目的會很有用。 – alekhine

2

僅供參考,構建文件名的首選方法是使用FULLFILE。在這種情況下,你可以做

fn = fullfile('/home/alekhine', [num2str(i), '.dat']); 

完整文件是首選,因爲它知道在不同的操作系統類型的不同的文件分隔符(即\在Windows和/在UNIX/Mac)。