基本上我正在寫一個Matlab文件更改文本文件中的第二個,在下面的「STR」線和上面的「CON」第3和第4號(這在下文中給出被稱爲'0.dat')。目前,我的Matlab代碼不會更改文本文件。用Matlab進行修改到一個文本文件
文本文件
pri
3
len 0.03
vic 5 5
MAT
1 147E9 0.3 0 4.9E9 8.5E9
LAY
1 0.000125 1 45
2 0.000125 1 0
3 0.000125 1 -45
4 0.000125 1 90
5 0.000125 1 45
WAL
1 1 2 3 4 5
PLATE
1 0.005 1 1
STR
1 32217.442335442 3010.34241024889 2689.48842888812
CON
1 2 1 2 3 1 3 4 1 4 5 1 5 6 1 6 7 1
ATT
1 901 7 901
LON
34
POI
123456
1 7
X 0.015
123456
2 6
X 0.00381966011250105 0.026180339887499
123456
3 5
X 0.000857864376269049 0.0291421356237309
123456
4
X 0
PLO
2 3
CRO
0
RES
INMOD=1
END
Matlab代碼:
impafp = importdata('0.dat','\t');
afp = impafp.textdata;
fileID = fopen('0.dat','r+');
for i = 1:length(afp)
if (strncmpi(afp{i},'con',3))
newNx = 100;
newNxy = 50;
newNy = 500;
myformat = '%0.6f %0.9f %0.9f %0.9f\n';
newData = [1 newNx newNxy newNy];
afp{i-1} = fprintf(fileID, myformat, newData);
fclose(fileID);
end
end
您的代碼永遠不會將任何數據寫入文件,因爲不包含fprintf或equal。 – Daniel
感謝您的回答。我不太確定我的理解。我認爲我在第四行中使用fprintf會覆蓋先前寫在第i-1行的文本。 – Jojo
你說得對,我誤解了代碼。將包含文本內容的單元格的寫入字節數分配給了我。 – Daniel