본질적으로 Matlab 파일을 작성하여 텍스트 파일에서 "STR"및 "CON"아래 줄의 두 번째, 세 번째 및 네 번째 숫자를 변경합니다 (아래 및 '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 코드 텍스트 파일 : importdata
에 대한 도움말에서
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