A=importdata(file,space,line)
其中,file是所读取的文件名,space是特定的分隔符,line是一个数字,指文本中字符串文字的行数,如上文的数据中line=4。
此代码的含义是,line行是title,line+1行到end是数据,按特定分隔符space读取数据。此方法可以读取文本在上和数据在下的文件。
A是一个sturct,其中Adata就是所需的数据了。
exapmle:
A=importdata('testtxt',' ',4);%运行即可取得数据Adata
此方法也可以按以下 *** 作获取:
在文件菜单中选择 file/import data,按照提示进行 *** 作至结束。
在 command 窗口中输入
>> whos
Name Size Bytes Class
data 5x4 160 double array
textdata 4x1 300 cell array
Grand total is 54 elements using 460 bytes
>> data
data =
1 11 111 1111
2 22 222 2222
3 33 333 3333
4 44 444 4444
5 55 555 5555
>> textdata
textdata =
'你好'
'欢迎来到'
'百思论坛'
'>写一个for循环
每次修改文件名
for i=1:803
if i<=9
name=['JULY7000',num2str(i),'trtx'];
elseif i<99
name=['JULY700',num2str(i),'trtx'];
else
name=['JULY70',num2str(i),'trtx'];
end
end
%%%%%%%%%%%%%%%%%%
问题补充:目前关键问题是怎么把filenames中的文件名'JULY70001trtx'带入到[x,y]=textread('e:\datas\JULY70001trtx','%f ; %f','headerlines',2);命令中读数据
%%%%%%%%%%%%%%%%%%%
这不简单吗
filenames=
patchname='e:\datas\';
fullname=[patchname,filenames]
[x,y]=textread(fullname,'%f ; %f','headerlines',2);
我不知道你这个函数用对了没有,
但是前面那几句话就可以实现文件名拼接filepath = uigetdir('','请选择文件夹');%fliepath为文件夹路径</span>
fileFolder=fullfile(filepath);
dirOutput=dir(fullfile(fileFolder,''));
fileName={dirOutputname};
fileName=fileName(3:end); %清除前两个系统默认的隐藏文件夹
%去除后缀名
fileName = strrep(fileName,'bmp','');
fileName = strrep(fileName,'jpg','');
fileName = strrep(fileName,'tif','');
fileName = strrep(fileName,'JPEG','');
fileName = strrep(fileName,'docx','');
fileName = strrep(fileName,'doc','');
fileName = strrep(fileName,'pdf','');
fileName = strrep(fileName,'txt','');dirs=dir('c:\dat');
%
用你需要的目录以及文件扩展名替换。读取某个目录的指定类型文件列表,返回结构数组。
dircell=struct2cell(dirs)'
;
%
结构体(struct)转换成元胞类型(cell),转置一下是让文件名按列排列。
filenames=dircell(:,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比如说在E:\new下有一系列txt文件,文件名符合matlab变量名的命名规则,并且没有temptxt文件,每个文件有两列,以空格分割,第一列是字符串,第二列是浮点数字,要读取第二列的浮点数字为数组并以文件名为变量名。
file=dir('E:\new\txt');
for n=1:length(file)
temp=dlmread(['E:\new\',file(n)name],' ',0,1);
eval([file(n)name(1:end-4),'=temp;'])
end
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)