matlab读取文件名中含有参数的文件

matlab读取文件名中含有参数的文件,第1张

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)];enddisp(dt)

for i=1:100

s=strcat('c:\matlab7\work\step',int2str(i),'\datatxt')

%dataprocess,产生一组data

fid=fopen(s,'w');

fprintf(fid,'%f',data)

fclose(fid);

end

试试是不是你要的

你的文件名没问题,没有特殊字符,只是load里不能用通配符,必须指定一个文件。如果你有很多这样的文件,可以用f

=

dir('_physicalvaluestxt')flist

=

然后写一个循环,比如for

m

=

1:numel(flist)

load(flist

,'-ascii');

end

1首先选中Excel表格,打开。

2然后在该界面中,选中“格子”里“工作表”里“汇总拆分”按钮。

3再者在面中,选中“汇总大师”选项。

4之后在该界面中,点击左侧“多簿汇总到一表”选项。

clc;clear all;

file = input('要处理的数据文件名:','s');

path = cd();

s1 = dir(path); 

[m,n]=size(s1);

for i = 3:m

   if s1(i)isdir

       s2 = dir([path '/' s1(i)name]);

       [p,q]=size(s2);

       for j = 3:p

           csvfilename = [path '\' s1(i)name '\' s2(j)name '\' file];

           fprintf('%s\n',csvfilename);

           [d1,Y]=textread(csvfilename,'%d%f%[^\n]','delimiter',',');

           Y(find(d1<93000))=[]; %去掉093000之前的数据

           matfilename = [s2(j)name 'mat'];

           save(matfilename,'Y');

       end

   end

end

要处理的数据文件名:SH600000CSV

D:\MATLAB\working\2013\201301\20130102\SH600000CSV

D:\MATLAB\working\2013\201301\20130103\SH600000CSV

D:\MATLAB\working\2013\201301\20130104\SH600000CSV

D:\MATLAB\working\2013\201301\20130105\SH600000CSV

D:\MATLAB\working\2013\201301\20130122\SH600000CSV

D:\MATLAB\working\2013\201301\20130131\SH600000CSV

D:\MATLAB\working\2013\201302\20130203\SH600000CSV

D:\MATLAB\working\2013\201302\20130204\SH600000CSV

D:\MATLAB\working\2013\201302\20130205\SH600000CSV

D:\MATLAB\working\2013\201303\20130302\SH600000CSV

D:\MATLAB\working\2013\201303\20130312\SH600000CSV

D:\MATLAB\working\2013\201303\20130331\SH600000CSV

D:\MATLAB\working\2013\201304\20130403\SH600000CSV

D:\MATLAB\working\2013\201304\20130415\SH600000CSV

D:\MATLAB\working\2013\201305\20130503\SH600000CSV

D:\MATLAB\working\2013\201305\20130505\SH600000CSV

D:\MATLAB\working\2013\201306\20130602\SH600000CSV

D:\MATLAB\working\2013\201306\20130631\SH600000CSV

在Windows中,“D:\”表示D盘,“D:”表示目录

还可以查找特定后缀的文件:

如: dir(['fk\','jpg']) 表示查找 fk文件夹下后缀为 ' jpg' 的文件

若 fk 目录下存在后缀为'jpg' 的文件,则返回文件名:

1260500466587jpg 1260500472025jpg 8673601djpg

否则返回: fk\jpg not found

其中dirname是要查找的路径的名字,路径在matlab的搜索路径内时,没有必要输入全名,只输入最后或最后两级就够了。

fopen ('filename', 'mode')

mode格式有:

‘r’:只读方式打开文件(默认的方式),该文件必须已存在。

‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。

‘w’:打开后写入数据。该文件已存在则更新;不存在则创建。

‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。

‘a’:在打开的文件末端添加数据。文件不存在则创建。

‘a+’:打开文件后,先读入数据再添加数据。文件不存在则创建。 如果rt表示该文件以文本方式打开,如果添加的是“b”,则以二进制格式打开,这也是fopen函数默认的打开方式。

Fopen函数两个返回值:

fclose(f)

f为打开文件的标志,若fclose函数返回值为0,则表示成功关闭f标志的文件;若返回值为–1,则表示无法成功关闭该文件。

若要一次关闭打开的所有文件,可以使用下面的命令:fclose all

MATLAB自带的MAT文件为二进制文件,但为了便于和外部程序进行交换以及方便查看文件中的数据,也常常采用文本数据格式(数据采用ASCII码格式,可以表示字母和数字字符)与外界进行数据交换。

函 数 | csvread| dlmread| fscanf| load| textread|

-|-|-

数 据 类 型| 数值数据| 数值数据| 字母和数值| 数值数据| 字母和数值|

分 隔 符| 仅cooma| 任何字符| 任何字符| 仅space| 任何字符|

返 回 值| 1| 1| 1| 1| 多返回值

如: A=load('my_datatxt');

如果想把4列数据全部读取出放在4个变量中,则使用如下命令:

>> [name gra grades answer]=textread('my_examdat','%s %s %f %s')

函 数| csvwrite| diary| dlmwrite| fprintf| save

-|-|-

数 据 类 型| 数值数据| 数值数据或单元阵列| 数值数据| 字母和数值数据| 数值数据

分 隔 符| 逗号| 空格| 任何字符| 任何字符| 制表符或空格符

存写有分隔符的ASCII码数据文件 若要将当前的MATLAB工作空间的一个或多个变量写到一个有分隔符的ASCII码文件中,可以使用save命令或dlmwrite函数。在默认情况下,save命令是以 MAT 格式存写数据的。

作用 | 标志 | 例子

-|-

左对齐 | ' - ' | %-52f

打印符号字符(+或 - ) | '+' | %+52f

插入空格| ' ' | % 52f

垫零 | '0' | %052f

对%o, %x, %X, 打印 0,0x,0X的前缀。

对%f, %e, %E, 打印小数点,即使是0。

对%g, %G,不删除或尾部的零或小数点。 | '#' | %#50f

例: 创建一个2×2的魔方矩阵,然后打开一文件,写入数据。

fseek frewind

设定指针位置重设指针到文件起始位置

ftell feof

获得指针位置测试指针是否在文件结束位置

以上就是关于matlab读取文件名中含有参数的文件全部的内容,包括:matlab读取文件名中含有参数的文件、MATLAB中如何读取一个不知道名称的文件夹、matlab 循环读取文件名带字母的文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9707740.html

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

发表评论

登录后才能评论

评论列表(0条)

保存