MATLAB中固定大小的输出数据



我正在尝试一个元素大小不同的矩阵
假设element_1=0.1234567和element_2=0.1,我需要element_2=0.1000000,以便它们都具有相同的大小。

clc;clear all
a = rand(4,12);
COL_Names ={'This_is_Colu_No_1','This_is_Colu_No_2','This_is_Colu_No_3','This_is_Colu_No_4','This_is_Colu_No_5','This_is_Colu_No_6','This_is_Colu_No_7','This_is_Colu_No_8','This_is_Colu_No_9','This_is_Colu_No_10','This_is_Colu_No_11','This_is_Colu_No_12'};
rowNames = {'ROW1';'ROW2';'ROW3';'ROW4'};
T = array2table(a,'VariableNames',COL_Names,'RowNames',rowNames);

writetable(T,'Data.txt','Delimiter','t','WriteRowNames',true);
type Data.txt ;

输出就像这个

Row This_is_Colu_No_1   This_is_Colu_No_2   This_is_Colu_No_3   This_is_Colu_No_4   This_is_Colu_No_5   This_is_Colu_No_6   This_is_Colu_No_7   This_is_Colu_No_8   This_is_Colu_No_9   This_is_Colu_No_10  This_is_Colu_No_11  This_is_Colu_No_12
ROW1    0.139740979774291   0.231035232035157   0.347778782863186   0.279682446566279   0.060995054119542   0.233212699943628   0.507599581908539   0.833087779293817   0.552819386888535   0.43251811668393    0.342580158122272   0.420574544492339
ROW2    0.00459708931895875 0.703626845695885   0.33064632159971    0.85782393462353    0   0.935097755896966   0.582441521353621   0.155241648807001   0.163717355897126   0.48985529896707    0.0134551766978835  0.810989133317225
ROW3    0.791254563282513   0.650747335567064   0.293769172888192   0.15110222627643    0.962791661993452   0.842147123142386   0.586462512126695   0.109349751268813   1   0.00525695361457879 0.700826048054212   0.989915984093474
ROW4    0.513993416249574   0.868158891144176   0.293769172888  0.552496163682282   0.301098948730568   0.779790450269442   0.420527994140777   0.523231514251179   0.0602548802340035  0.261436547849062   0.84923648156472    0.433189006269314

我认为您需要手动使用fprintfformatSpec:

clc, clear, rng(3);
a = rand(4, 3);
colNames = {'This_is_Colu_No_9', 'This_is_Colu_No_10', 'This_is_Colu_No_11'};
rowNames = {'ROW98'; 'ROW99'; 'ROW100'; 'ROW101'};
formatSpecHead = '%-6s   %-22s   %-22s   %-22sn';
formatSpecRow = '%-6s   %.20f   %.20f   %.20fn';
fid = fopen('a.fwf', 'w');
fprintf(fid, formatSpecHead, 'Row', colNames{:}); % write header
for row = 1:size(a, 1)
fprintf(fid, formatSpecRow, rowNames{row}, a(row, :)); % write row
end
fclose(fid);

然后a.fwf看起来像:

Row      This_is_Colu_No_9        This_is_Colu_No_10       This_is_Colu_No_11    
ROW98    0.55079790257457550418   0.89294695434765469777   0.05146720330082987793
ROW99    0.70814782261810482744   0.89629308893343806464   0.44080984365063646813
ROW100   0.29090473891294432729   0.12558531046383625274   0.02987621087856695556
ROW101   0.51082760519766301499   0.20724287813818675907   0.45683322439471107934

相关内容

  • 没有找到相关文章