2012-05-30 1 views
5
function [org_data] = file_manipulation(in_fname, txt_fname, mat_fname) 
    org_data = round(load(in_fname)); 

    fid = fopen(txt_fname,'wt+'); 
    student_id = '9900'; 
    txt = [txt_fname ' : ' student_id '\nDate of creation:' datestr(now,'dd/mm/yyyy')]; 
    fprintf(fid,'%s',txt); 

end 

を新しい行を書く代わりに、ファイルが生成された改行を挿入することである:MATLABでのテキストファイルに

C:\w2\test1.txt : 9900\nDate of creation:30/05/2012 

私のコードでproblenは何ですか?

答えて

5

使用sprintfは、これらの文字列を作るために:

fprintf(fid, sprintf('%s : %s\nDate of creation: %s', txt_fname, student_id, datestr(now,'dd/mm/yyyy'))); 

あなたは今それをやっている方法は、それがリテラルとしてバックスラッシュを扱います。

+0

つまり、\ nはsprintfファミリの関数によって解釈され、他の通常の言語のようにプリプロセッサレベルでは解釈されません。 – Peter

+0

MATLABは実際に文字列操作用に設計されていませんでした。 – Ansari

+0

申し訳ありませんが、変数を使用していない場合でもわかりません。 (二重引用符を一重引用符で置き換える答えを編集したばかりです)。 – Ansari

0

あなたはそれを文字列に挿入する前に倍増する「\ n」を変換する:フランクDernoncourt、アドビResearchの研究内容・サイエンティストに

fid = fopen('my_file.txt', 'w'); 
fwrite(fid, ['First line' double(sprintf('\n')) 'Second line']) 
fclose(fid); 

感謝。

関連する問題