File 在Matlab中处理一系列文件的输出
编辑3 嗨!我有矩阵维数的问题,但我已经解决了。现在我的问题是,我想对同一文件夹中的一大系列文件执行相同的操作,并且我想在text.txt上的单独一行中写入输出值。对于第一个,它可以工作,但它不“写”到“文本”,其余的。有什么不对劲吗File 在Matlab中处理一系列文件的输出,file,matlab,sequence,File,Matlab,Sequence,编辑3 嗨!我有矩阵维数的问题,但我已经解决了。现在我的问题是,我想对同一文件夹中的一大系列文件执行相同的操作,并且我想在text.txt上的单独一行中写入输出值。对于第一个,它可以工作,但它不“写”到“文本”,其余的。有什么不对劲吗 myPath = 'C:\EX\'; a= dir (fullfile(myPath,'*.DIM')); fileNames = { a.name }; % Rename files for k = 1:length(fileNames) new
myPath = 'C:\EX\';
a= dir (fullfile(myPath,'*.DIM'));
fileNames = { a.name };
% Rename files
for k = 1:length(fileNames)
newFileName = [fileNames{k}(1:2) fileNames{k}(4:6) '.txt'];
movefile([myPath fileNames{k}], [myPath newFileName]);
end
filePattern=fullfile( myPath,'*.txt');
txtFiles= dir(filePattern);
for k = 1:length(txtFiles)
baseFileName=txtFiles(k).name;
fullFileName= fullfile(myPath,baseFileName);
fid=fopen(fullFileName, 'r');
for i = 1:18
m{i} = fgetl(fid);
end
result2 = m{18};
result2b= result2([12:19]);
fid=fopen(fullFileName, 'r');
for i = 1:30
m{i} = fgetl(fid);
end
result3 = m{30};
result3b= result3([12:19]);
fid=fopen(fullFileName, 'r');
for i = 1:31
m{i} = fgetl(fid);
end
result4 = m{31};
result4b= result4([12:20]);
fid=fopen(fullFileName, 'r');
for i = 1:19
m{i} = fgetl(fid);
end
result5 = m{19};
result5b= result5([12:20]);
text= {baseFileName, result2b, result3b, result4b, result5b};
final= [Fields'; text];
end
真的提前谢谢了 索引超出维度正是它的意思
尝试在发生断点的行上放置断点,并检查result2的维度。假设它是一个向量,您会发现它的长度小于19。是否要对一大系列文件应用相同的操作/函数?然后在
test.txt
中的单独一行中写入每个测试的输出?感谢Gunther的回复。是的,这正是我想做的,但没有用(我刚刚再次编辑了这个问题。谢谢你的评论Dennis。我已经检查过了,但不知道如何解决这个问题。如果我逐个函数计算,它会工作,但如果我全部执行,“result2”将更改为“-1”。我不明白为什么。我仍然在检查是否能找到发生这种情况的原因!:(如果它对每个文件都单独起作用,那么尝试将文件i的输出存储在result2{i}(单元格数组或矩阵,取决于其内容)谢谢Dennis,非常感谢!我已经尝试了“text={baseFileName,result2b,result3b,result4b,result5b};”这一行。我想这是你的意思,但我不太确定。