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

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

Contents
1load循环读入mat
21fprintf写出数据txt
22load循环读入txt
% 利用load循环读取文件
% 把文件的文件名按一定的规律命名,假如:f001mat,f002mat,
% 在读取的时候则可以使用循环
1load循环读入mat
% f001mat, f002mat, f003mat三个数据文件,其变量名称均为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

21fprintf写出数据txt
a1 = 1:10;
a2 = 11:20;
fid1 = fopen('t001txt','wt'); %若是在txt中,需在w后面加上t,由w变为wt,\n才能识别
for i=1:10
fprintf(fid1,'%g \n',a1(i));
end
fclose(fid1);
fid2 = fopen('t002txt','wt'); %若是在txt中,需在w后面加上t,由w变为wt,\n才能识别
for i=1:10
fprintf(fid2,'%g \n',a2(i));
end
fclose(fid2);
22load循环读入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

Matlab批量读取一个文件夹里的txt文件的方法。

如下参考:

1首先,在这里举例制作一个txtde文本文件,如下面页面的内容。

2将文本文件放入matlab的工作路径中,方便读取 *** 作。例如,如果我的文本文件在桌面上,我可以将matlab的工作路径更改为桌面。具体方法是点击matlab的省略号后的当前工作路径,d出选项选择文件夹,然后选择相应的路径。

3接下来,我们使用importdata函数来读取文件。例如,我想读取一个名为data的文本文件,我可以在命令窗口中输入:data=IMPORTDATA('datatxt')。

4结果表明,数据是一个结构化数组。在这一点上,我们可以看看结构的每个部分代表什么。如下图所示,第一个数组表示文本文件的数量,第二个和第三个数组表示文本文件中的汉字。此时,每个人都可以根据需要引用适当的数组。

5除了上述功能,您还可以使用tex胎面函数来读取。使用该特性时,可以使用[a,b,c,d]=tex胎面('data')来指定输出的每个部分的格式。txt','%2s%。3f%。3f%3f”)。

文本中的第二个引号表示输出的格式。例如,%2s表示第一列的输出格式是单元格数组%。3f表示输出数字保留三位小数。

matlab怎么循环读取有特定后缀的文件名
pt = 'd:\tem\'; % 文件路径,换成自己位置
suf = '_ntxt';
dd = dir([pt '' suf]);
dt = [];
for k = 1:length(dd)
nm = [pt dd(k)name];
tem = load(nm);
dt = [dt; tem(1:3)];
end
disp(dt)

如果你的程序中想调用文件名为Mfilenamemat的文件,只要如下指令就可以了,可以给Mfilenamemat输入函数值a,b,c,且把得到的值赋给X和Y;
[X,Y]=Mfilename(a,b,c);
同时注意:
1,被调用的文件与你的主程序在同一文件夹内,否则要指明路径;
2,被调用的程序第一行需要加上该指令:
function [X,Y]=Mfilename(a,b,c)
3,输入输出函数的个数是任意的,也可以没有输入输出函数。

首先,nc1的这个“3”是netcdfopen函数返回的ncid;Matlab自带、与NETCDF相关的 Low-Level 函数中很多以 id 来识别文件(ncid)、维度(dimid)、变量(varid)。在help中搜索 “netcdf” 可以找到所有相关函数。\x0d\\x0d\其次,仅需要从nc文件中读取数据时,不必调用这些 Low-Level 函数,一般使用 ncread,例如最简单的 u = ncread('uwnd2010nc', ‘u’); 这个命令将从你的nc文件中读取变量“u”。详细说明建议看help:help ncread。\x0d\\x0d\最后,如上面建议的,简单的工作中,尽量使用 ncread、ncwrite、 ncreadatt 等函数。一方面,这些函数使用时非常方便、直观;另一方面,使用那些 netcdf××× 形式的 “Low Level” 函数前,最好先熟悉一下 NetCDF C Interface,否则可能会出现一些问题。例如使用 ncread 可以直接使用文件名、变量名读取变量,但 “Low Level” 函数则需要:获得ncid(ncid = netcdfopen(‘×××’))、获得变量id(varid = netcdfinqVarID(ncid,‘×××’))、读取变量(data = netcdfgetVar(ncid,varid))三步。\x0d\PS:\x0d\Matlab从2008b开始,就开始自带netcdf接口了(当时是netcdf-3),并且跟随netcdf标准的演变,在之后的版本中添加了对netcdf-4、OpenDAP等的支持,并加入了一些符合Matlab习惯的函数。\x0d\\x0d\因此如果使用的是2008b之前的版本,需要MEXNC、SNCTOOLS等外部接口;而2008b-2010b则不必依赖外部函数;最后如果是2011a及更新版本的,则可以直接使用“ncread”、“ncwrite”等非常方便的函数

eval。
eval(expression)计算字符串表达式中的MATLAB代码。如果在匿名函数,嵌套函数或包含嵌套函数的函数中使用eval,则求值表达式无法创建变量。
文件名通常由主文件名和文件扩展名组成,二者之间由一个小圆点隔开。

方法1:
把文件的文件名按一定的规律命名,假如:filename1txt,filename2txt,,fielname100txt,在读取的时候则可以使用循环:
for i = 1:100
fileName = ['filename' num2str(i) 'txt'];
x = load(filiName);
end
方法2:无需对数据文件的文件名进行修改,就是文件名无须有规律:
A = dir(fullfile('d:/datafile','txt'));
这个语句是把存放数据文件的目录d:/datafile下的所有txt文件列出来,并把这些文件名的信息存放到一个变量A中,A是一个结构体变量,只要对A进行循环就可以读取到所有文件的数据了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13042004.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存