matlab如何循环使用load函数读入名字像data0,data1……等数据文件

如题所述

Contents
1.load循环读入.mat
2.1.fprintf写出数据txt
2.2.load循环读入txt

% 利用load循环读取文件
% 把文件的文件名按一定的规律命名,假如:f001.mat,f002.mat,...
% 在读取的时候则可以使用循环

1.load循环读入.mat
% f001.mat, f002.mat, f003.mat三个数据文件,其变量名称均为a(1x3的矩阵)
a = [0 0 1];
save f001;
a = [0 0 2];
save f002;
a = [0 0 3];
save f003;

clear;

x = zeros(3); %将三个文件的数据读到 x 中
for i = 1:3
FileName = ['f00' num2str(i)];
load (FileName);
x(i, :) = a; %a是load进入的变量名
end
disp('x = ');
disp(x);

x =
0 0 1
0 0 2
0 0 3

2.1.fprintf写出数据txt
a1 = 1:10;
a2 = 11:20;
fid1 = fopen('t001.txt','wt'); %若是在txt中,需在w后面加上t,由w变为wt,\n才能识别
for i=1:10
fprintf(fid1,'%g \n',a1(i));
end
fclose(fid1);
fid2 = fopen('t002.txt','wt'); %若是在txt中,需在w后面加上t,由w变为wt,\n才能识别
for i=1:10
fprintf(fid2,'%g \n',a2(i));
end
fclose(fid2);

2.2.load循环读入.txt
y = zeros(10,2);
for i = 1:2
FileName = ['t00' num2str(i) '.txt'];
a = load (FileName);
y(:, i) = a;
end
disp('y = ');
disp(y);

y =
1 11
2 12
3 13
4 14
5 15
6 16
7 17
8 18
9 19
10 20
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
这个有两种方法
方法一:
for i=0:10
filename=['data' num2str(i) '.mat']
load(filename)
end

方法二:
使用dir函数将所有的文件名读入,然后也是使用循环进行读取!

祝你学习愉快!追问

请你帮我看看 我这个是哪里错了呢?

追答

我刚才试了,是没有问题的,但我看不清你出的到底是什么错误,是不是你的文件找不到啊?你把错误信息发清楚点!

追问

现在能看清楚了么?

追答

你看错误就很清楚,没有对应的文件或路径,你的文件在当前目录下吗?

追问

额……我能看懂它的错误提示,不过事实是两个data1,data0的数据文件就在那个目录下面呀!~不知道是不是因matlab版本的关系哈!~我的是R2010b的(按理说版本还是有那么高了噻!~

本回答被提问者采纳
第2个回答  2011-11-18
matlab中load函数读入的名字是文件的地址,不能循环使用
第3个回答  2011-11-19
我用的是open,比如这些文件在F盘临时文件夹里
for i=0:10
x{i}=open(['F:\临时\data\data',num2str(i),'.mat']);
end
x
不知道你的适不适用,参考下吧!
相似回答