有一百个txt文件,命名为F001.txt。。F100.txt,每个文件4096个数据,如何在matlab中读取数据组成一维数组

每个文件下数据格式如下

注意网友taoml1234的代码无法准确打开前99个文件,因为文件名不对,此外load命令也有问题。可以试试下面的代码
data = zeros(4096,100);
for i=1:100
filename = sprintf('F%3d.txt',i);
filename(isspace(filename))='0'
d=load (filename);
data(:,i) = d;
end追问

运行结果如下,,
data = zeros(4096,100);
for i=1:100
filename = sprintf('F%3d.txt',i);
filename(isspace(filename))='0'
d=load (filename);
data(:,i) = d;
end

filename =
F001.txt
Subscripted assignment dimension mismatch.

我对matlab并不熟悉,不知怎么避免这个错误。请指导。谢谢。

追答

我测试过,程序应该没有问题。你检查一下F001.txt文件中是否有4096个数字,如果文件数字的数目不对就会出现这种问题。当然这样处理的结果是data数组以2维形式存储了100个文件中所有的内容,如果需要最后的结果是1维数组,最后可以再加上如下命令reshape(data,4096*100,1)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-17
data = zeros(4096,100);
for i=1:100
filename = sprintf('F%d.txt',i);
load filename
data(:,i) = filename;
end本回答被网友采纳
第2个回答  2012-07-17
读100文件,将读出的100个数组,合并为1个数组呗。追问

关键是不知如何用循环语句实现

追答

呵呵,楼上都给你回答了,按他那个就行~我就不罗嗦了

第3个回答  2012-07-17
1楼的是2维数组,借用1楼的程序弄成1维数组。

data = zeros(4096*100,1);
for i=1:100
filename = sprintf('F%d.txt',i);
load filename
data([4096*(i-1)+1:4096*i],1) = filename;
end
大家正在搜