Matlab檔案IO--文字與數值的寫

兔美醬xz發表於2014-03-10

1. 寫純數值的文字檔案


%% 寫純數值的文字檔案
dat1 = rand(3,5)
dlmwrite('dat1.txt',dat1,'delimiter','\t','newline','pc');   %'pc':PC terminator (implies carriage return/line feed (CR/LF))
                                                             % 採用dlmwrite函式將dat1寫入文字檔案dat1.txt
fid = fopen('dat2.txt','wt');      %以只寫、文字模式開啟或建立文字檔案dat2.txt
fprintf(fid,'%5.4f 5.4f %5.4f 5.4f 5.4f\n',dat1);
fclose(fid);

2. 寫純文字的文字檔案

%% 寫純文字的文字檔案
content = {'自動滾屏';...
           '1.可以控制瀏覽器自動滾動頁面,這在瀏覽一些超長的網頁時相當有用。';...
           '2.您也可以控制滾動速度,和選擇不同的速度控制方式。';...}
           '3.滑鼠控制滾動速度:把滑鼠停留在滾動條上,滑鼠指標位置越靠近下方,滾動速度越快。'}
% % % % %以下采用fprintf函式實現寫純文字到文字檔案dat1.txt中 % % % % %
fid = fopen('dat1.txt','wt');
str = str2mat(content);
format = [repmat('%c',1,size(str,2)) '\n'];
fprintf(fid, format,str');  %按指定格式將字元陣列寫入文字檔案dat1.txt中
fclose(fid); 

fid = fopen('dat2.txt','wt');       %以只寫、文字模式開啟檔案dat2.txt
str = str2mat(content) %將字串單元陣列轉化為字元陣列str,便於fwrite函式寫操作
mLine = size(str,1)                 %字元陣列str的行數
mCol = size(str,2)
str1 = zeros(mLine, mCol+2);     %擴充套件字元陣列str,在最右側新增兩列字元:'\r\n'
str1(:,1:end-2) = str;
str1(:,end-1:end) = char(repmat(sprintf('\r\n'),mLine,1))
fwrite(fid,str1,'char');  % writes the elements of array A to 
                          % a binary file in column order.
fclose(fid);

3.  寫文字和數值混合的文字檔案

%% 寫文字和數值混合的文字檔案
head = '序號       班名       學號       姓名      平時成績     期末成績';
text = {'51121','5112101','陳';
        '51121','5112103','李';
        '51121','5112105','劉'};
num = [0   63;
       0   73;
       0   88];
% % % % % % % %以下為將資料存入data.txt的程式程式碼% % % %
fid = fopen('data.txt','wt');
fprintf(fid,[head '\n']);
for i = 1:3
    fprintf(fid,'%d    %s    %s    %s    %d    %d\n',i,text{i,1},...
        text{i,2},text{i,3},num(i,1),num(i,2));
end
fclose(fid);



相關文章