丢弃换行符
discard newline character
这是我正在使用的代码;
files2 = dir('X_*.txt');
for kty=1:p
fidF = fopen(['X(A)_' num2str(kty) '.txt'], 'w');
for i = 1:length(files2)
fid = fopen(files2(i).name);
while(~feof(fid))
string = fgetl(fid)
fprintf(fidF, '%s', string)
end
fclose(fidF);
end
end
P
等于 90,因为有 90 个不同的 X
文本文件,其中包含不同的 angles.The 新的 X(A)
文本文件应该是 90 个不同的文件。
该代码用于删除第二行,it's working.
我想问的是,当我使用这段代码时,它会创建 X(A)
个文本文件(90 个文件),但所有文件都包含 X_1
个文件角度变量,但它应该是;
X_1 > X(A)_1 (each variable should transfer to new file.)
(X_65 > X(A)_65)
X_2 > X(A)_2
...
...
如何修复代码?
files2 = dir('angle_*.txt');
for i = 1:length(files2)
fidF = fopen(['angle(A)_' num2str(i) '.txt'], 'w');
fid = fopen(files2(i).name);
while(~feof(fid))
string = fgetl(fid)
fprintf(fidF, '%s', string)
end
fclose(fidF);
fclose(fid);
end
结果是
angle_1=272 angle(A)_1=272
angle_2=276 angle(A)_2=308
angle_3=280 angle(A)_3=312
angle_4=284 angle(A)_4=316
angle_5=288 angle(A)_5=320
angle_6=292 angle(A)_6=324
angle_7=296 angle(A)_7=328
angle_8=300 angle(A)_8=332
angle_9=304 angle(A)_9=336
angle_10=308 angle(A)_10=340
angle_11=312 angle(A)_11=344
angle_12=316 angle(A)_12=348
angle_10 variable goes to angle(A)_2 variable and its copy in this order.
为了让您的输入和输出文件匹配,您需要删除其中一个 for
循环并让 X(A)_#.txt
匹配 files2(#).name
:
files2 = dir('X_*.txt');
for i = 1:length(files2)
fid = fopen(files2(i).name);
fNum = regexp(files2(i).name, '([0-9]*)', 'match');
fidF = fopen(['X(A)_' fNum{1} '.txt'], 'w');
while(~feof(fid))
string = fgetl(fid)
fprintf(fidF, '%s', string)
end
fclose(fidF);
fclose(fid);
end
我已经从 1:p
中删除了循环,并使用了循环以 i
作为循环变量的输入文件数。 i
用于输出文件名和输入文件列表的索引。
这是我正在使用的代码;
files2 = dir('X_*.txt');
for kty=1:p
fidF = fopen(['X(A)_' num2str(kty) '.txt'], 'w');
for i = 1:length(files2)
fid = fopen(files2(i).name);
while(~feof(fid))
string = fgetl(fid)
fprintf(fidF, '%s', string)
end
fclose(fidF);
end
end
P
等于 90,因为有 90 个不同的 X
文本文件,其中包含不同的 angles.The 新的 X(A)
文本文件应该是 90 个不同的文件。
该代码用于删除第二行,it's working.
我想问的是,当我使用这段代码时,它会创建 X(A)
个文本文件(90 个文件),但所有文件都包含 X_1
个文件角度变量,但它应该是;
X_1 > X(A)_1 (each variable should transfer to new file.)
(X_65 > X(A)_65)
X_2 > X(A)_2
...
...
如何修复代码?
files2 = dir('angle_*.txt');
for i = 1:length(files2)
fidF = fopen(['angle(A)_' num2str(i) '.txt'], 'w');
fid = fopen(files2(i).name);
while(~feof(fid))
string = fgetl(fid)
fprintf(fidF, '%s', string)
end
fclose(fidF);
fclose(fid);
end
结果是
angle_1=272 angle(A)_1=272
angle_2=276 angle(A)_2=308
angle_3=280 angle(A)_3=312
angle_4=284 angle(A)_4=316
angle_5=288 angle(A)_5=320
angle_6=292 angle(A)_6=324
angle_7=296 angle(A)_7=328
angle_8=300 angle(A)_8=332
angle_9=304 angle(A)_9=336
angle_10=308 angle(A)_10=340
angle_11=312 angle(A)_11=344
angle_12=316 angle(A)_12=348
angle_10 variable goes to angle(A)_2 variable and its copy in this order.
为了让您的输入和输出文件匹配,您需要删除其中一个 for
循环并让 X(A)_#.txt
匹配 files2(#).name
:
files2 = dir('X_*.txt');
for i = 1:length(files2)
fid = fopen(files2(i).name);
fNum = regexp(files2(i).name, '([0-9]*)', 'match');
fidF = fopen(['X(A)_' fNum{1} '.txt'], 'w');
while(~feof(fid))
string = fgetl(fid)
fprintf(fidF, '%s', string)
end
fclose(fidF);
fclose(fid);
end
我已经从 1:p
中删除了循环,并使用了循环以 i
作为循环变量的输入文件数。 i
用于输出文件名和输入文件列表的索引。