2013-11-22 68 views
0

我具備的功能功能創建personalia

fid = fopen(filename,'w'); 

if exist('fid') 
    check = true; 
else 
    check = false; 
end 


for i=1:length(persons) 
    fprintf(fid, '%s\n',serialize_person(persons(i))); 
end 
end 

哪裏serialize_person是

function [output] = serialize_person(person) 

fprintf ('<%s>#' , person.name) ; 
serialize_date (person.date_of_birth) ; 
fprintf ('#<%i>\n' , person.phone) ; 

end 

這需要一個personalia,並寫出 'name.day.month.year.phonenumber' 名單首先,我需要將它作爲「輸出」中的單個字符串出現,因爲它(我假設)在第一個函數中工作,我將如何處理這個問題?其次,第一個功能是一個文件名和一個人的單元格。我希望它出現在名爲'文件名'的文本文件中,每行一個。 昨天我已經把它工作到了for循環,但不知何故,我不能在沒有觸及錯誤信息的情況下超越第一行。 你能否在這裏給我一些建議,我不知道什麼是錯的。

+0

這個問題有什麼好運? – chappjc

回答

0

要將輸出寫入字符數組而不是控制檯,請使用sprintf。此外,加入了'.'琴絃弦之間,儘量strjoin用分隔符集:

function [output] = serialize_person(person) 
    delim = '.'; 
    output = strjoin(sprintf ('<%s>#' , person.name), ... 
        serialize_date (person.date_of_birth), ... 
        sprintf ('#<%i>\n' , person.phone), delim); 

end 

修改serialize_date類似。