我在我的Windows 7机器上使用了MatlabR2011a。 我有一个635文本文件的文件夹。每个文件包含多行和2列。我试图循环浏览文件夹并读取每个文件并将这些值写入excel。到目前为止,这是我所拥有的:将数据写入excel文件,MATLAB
close all; clc;
dirname = uigetdir;
Files = dir(fullfile(dirname,'*.txt'))
for k = 1:635
j =1
filename = fullfile(dirname,Files(k).name);
fid = fopen(filename);
x = fgetl(fid)
while ischar(x)
x = fgetl(fid)
a2 = strtrim(x);
a3 = textscan(a2,'%s');
a4 = a3{1}{1};
a5= a3{1}{2};
pos3 = strcat('A',num2str(j));
xlswrite('sample_output',{a4,a5},'Sheet1',pos3)
j = j+1;
end
fclose(fid);
end
读完第一个文件后,它总是给我下面的错误。
Error using ==> strtrim Input should be a string or a cell array of strings.
样本输入文件看起来像这样:
15076 4636259
15707 4636299
15714 1781552
15721 4204950
15730 2174919
16209 4636510
16413 4758572
16470 4445808
17519 311397
17667 2116489
17739 1729694
756
18627 3714194
18695 4192858
19141 632766
19318 1923574
19438 1255216
19493 4635020
19771 4770250
我该如何解决这个问题?希望对此有所帮助!
不要以为它现在正在执行一次。 excel文件是空白的。可能是因为'x = fgetl'命令太晚了?我应该在while循环之前的第一个'x = fgetl'命令放在同一个地方吗? – dawnoflife 2012-03-23 00:12:47
是的。在while循环之前留下第一个。移动第二个。 – learnvst 2012-03-23 00:15:07
我认为我使用循环的方式是错误的。它正在覆盖当前的单元格。 – dawnoflife 2012-03-23 00:23:40