matlab

2012-05-30 5 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 व्याख्यान के परिवार के स्प्रिंटफ परिवार द्वारा व्याख्या की जाती है, न कि अन्य सेने भाषाओं की तरह प्रीप्रोसेसर स्तर पर। – Peter

+0

MATLAB वास्तव में स्ट्रिंग मैनिपुलेशन के लिए डिज़ाइन नहीं किया गया था .. – Ansari

+0

क्षमा करें मुझे समझ में नहीं आता - यहां तक ​​कि जब आप चर का उपयोग नहीं करते हैं? (मैंने सिंगल कोट्स के साथ डबल कोट्स को प्रतिस्थापित करने के लिए जवाब संपादित किया है)। – Ansari

0

कन्वर्ट '\ n' इससे पहले कि आप स्ट्रिंग के लिए सम्मिलित दोगुना करने के लिए:

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

फ़्रैंक Dernoncourt, एडोब रिसर्च में Reseach वैज्ञानिक के लिए धन्यवाद।