我試圖將char()
函數的輸出傳遞給fprintf
,以便我可以將多行寫入文本文件。問題在於fprintf(fid,'%s\n', str)
忽略了所有行之間的空格,而是打印出一條大行。我想打印str
,而不會丟失新的行。fprintf matlab中的字符函數:寫入文件時保留新行
str = (char(textlinepre));
filename = 'newfile.dat';
fid = fopen(filename,'w');
fprintf(fid,'%s\n', str);
fclose(fid);
原始的DAT /文本文件的內容,這被讀入作爲字符串的單元陣列到可變textlinepre
。
%Created with Spacar 2.0.25 at 18-05-17, 11:43:37
% leafspring1
BEAM 1 1 2 3 4 0.0000000000 1.0000000000 0.0000000000
% solid bar
BEAM 2 3 4 5 6 0.0000000000 0.0000000000 1.0000000000
% leafspring2
BEAM 3 5 6 7 8 0.0000000000 1.0000000000 0.0000000000
X 1 0.0000000000 0.0000000000 0.0000000000
X 3 0.0000000000 0.1000000000 0.1000000000
X 5 0.0000000000 0.0000000000 0.1000000000
X 7 0.0000000000 0.1000000000 0.0000000000
FIX 1 1
FIX 1 2
FIX 1 3
FIX 2 2
FIX 2 3
FIX 2 4
FIX 7 1
FIX 7 2
FIX 7 3
FIX 8 2
FIX 8 3
FIX 8 4
RLSE 3 1
RLSE 3 2
RLSE 3 3
RLSE 3 4
RLSE 3 5
RLSE 3 6
DYNE 1 1
DYNE 1 2
DYNE 1 3
DYNE 1 4
DYNE 1 5
DYNE 1 6
END
HALT
XF 3 0.000000000000 0.000000000000 0.000000000000
EM 1 0.070650000000 0.000001909022 0.000001907550 0.000000001472 0.000000000000
EM 2 1.999400000000 0.000094804883 0.000066646667 0.000028158217 0.000000000000
EM 3 0.070650000000 0.000001909022 0.000001907550 0.000000001472 0.000000000000
ESTIFF 1 1890000.000000000000 0.058028906301 51.030000000000 0.039375000000 0.000000000000 0.000000000000
ESTIFF 3 1890000.000000000000 0.000000000000 0.000000000000 0.039375000000 0.000000000000 0.000000000000
EDAMP 1 0.365400000000 0.000006500000 0.000190000000 0.000005300000
EDAMP 3 0.365400000000 0.000000000000 0.000000000000 0.000005300000
TIMESTEP 10.00 50
ITERSTEP 10 10 0.00005
END
END
VISUALIZATION
BEAMVIS 1 0.000500000000 0.018000000000
BEAMVIS 2 0.013000000000 0.020000000000
BEAMVIS 3 0.000500000000 0.018000000000
VIBRATIONMODE 1
VIBREND 7.854
ENLARGEFACTOR 0.01
TRANSPARENCY 0.6
是的,你是對的,我很抱歉,我試過編輯它變成了一個更清晰的表述。 –
給我們一個'textlinepre'的例子嗎?你目前只是在你的整個字符串後面打印一個新的行,而不是在其中的給定點... – Wolfie
我沒有得到的是如何在每個字符串(行)後插入一個輸入。 –