matlab的数据输入输出有多种方式,但内容快速,不完整的几种用法如下,然后逐渐增加。 然后,在熟悉了这些事情之后再总结。
第一个内容:
txt文件(a.txt )的内容如下。
这是测试用的txt文件
项目1项目2项目3
1 2
2
2 3
3
可以按如下方式使用importdata命令:
文件内容=importdata (a.txt ) )。
运行此命令会导致以下结果:
文件内容=
data : [ 2x 3双精度]
文本数据: {2x1 cell }
1个row headers :
cell}
接下来,filecontent.data、filecontent.textdata、filecontent.data.rowheaders的内容如下:
filecontent.data=
1
2 2
2
3 3
filecontent.textdata=
"这是测试用的txt文件. "
"项目1项目2项目3 "
filecontent.rowheaders=
"这是测试用的txt文件. "
"项目1项目2项目3 "
内容快二:
可以跳过文本文件中第一个skip行的程序可以设计如下(虽然有这种想法,但需要是值得讨论的) :
函数输出=加载数据(文件名,skip ) )。
(() ) ) (() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )在652
%本程序的作用:导入文本文件中的数据。 跳过第一个skip行。
(() ) ) (() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )在652
% by : baby _ wolf contact : QQ 654832919
(() ) ) (() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )在652
%syntax:
% output=加载数据(文件名,skip ) )。
%
%filename :要导入的文件名(支持文本类型数据文件) ) ) ) ) ) ) ) )。
%skip:忽略的行数
%
%示例:
t=loaddata(Ceshi.dat ),3 );
%
(() ) ) (() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )在652
FID=fopen(filename,' r ' );
for i=1:skip
tmp=fgetl(FID );
结束
data=[];
while tmp~=-1
tmp=fgetl(FID );
if tmp~=-1
eval_r(['add=[ ',tmp
、()、)。 ];
结束
数据=[数据; 添加];
结束
OUTPUT=data;
fclose(FID;
内容快三:
在matlab中,fopen函数在指定文件中打开的示例如下:
*1)“fopen”打开文件,赋予文件编号。
语法1:FID=fopen (文件名称,权限) ) ) ) ) ) )。
用指定的方法打开文件
FID=n(n为正整数) :表示文件打开成功,文件编号为n。
FID=-1 :表示文件打开失败。
FID在关闭此次文件之前始终有效。
在读取中打开时,matlab首先搜索工作目录,然后搜索matlab中的其他目录。 “权限”是打开方式参数。
打开方法的参数由以下字符串决定:
r读出
w写入(如果文件不存在,则自动创建) ) ) ) )。
a后续写入(如果文件不存在,则自动创建) ) ) ) )。
r读取和写入(文件必须已经存在) )。
w重新更新写入。 (如果文件不存在,将自动创建。 )
a后续写入(如果文件不存在,将自动创建) )
w重新写入,但不自动刷新
a写入后,不自动刷新
的保存格式:打开文件的默认方法是二进制。 用文本打开后,可以用方法加入
将" rt "、" wt "等" t "文件添加到" permission "中
以下是fprintf函数在matlab中的具体用法示例。
fprintf函数可以用指定的格式将数据写入文本文件。 调用格式如下:
的格式输出: fprintf(FID,for
mat,variables)
按指定的格式将变量的值输出到屏幕或指定文件
fid为文件句柄,若缺省,则输出到屏幕
1
for standard output (the screen) or 2 for standard error. If FID is
omitted, output goes to the screen.
format用来指定数据输出时采用的格式
%d
整数
%e
实数:科学计算法形式
%f
实数:小数形式
%g
由系统自动选取上述两种格式之一
%s
输出字符串
fprintf(fid,format,A)
说明:fid为文件句柄,指定要写入数据的文件,format是用来控制所写数据格式的格式符,与fscanf函数相同,A是用来存放数据的矩阵。
例6.9 创建一个字符矩阵并存入磁盘,再读出赋值给另一个矩阵。
>> a='string';
>>
fid=fopen('d:char1.txt','w');
>> fprintf(fid,'%s',a);
>> fclose(fid);
>>
fid1=fopen('d:char1.txt','rt');
>>
fid1=fopen('d:char1.txt','rt');
>> b=fscanf(fid1,'%s')
b =
string
matlab读txt文件
fid=fopen('fx.txt','r');
%得到文件号
[f,count]=fscanf(fid,'%f %f',[12,90]);
%把文件号1的数据读到f中。其中f是[12 90]的矩阵
%这里'%f %f'表示读取数据的形势,他是按原始数据型读出
fclose(fid);
%关闭文件
另外有的txt文件还可以用load来打开
其语句为
f=load('fx.txt)
内容快四:
数据格式形如:
276725;034545104X;0
276726;0155061224;5
276727;0446520802;0
276729;052165615X;3
文件是一个大约100万行3列的数组。第一列是用户编号,都是整数;第二列是书本isbn编号,有纯数字,也有字符X,N,isbn等甚至还可以有小数点;第三列是评分,为0-10的整数。现在我想把这个读到matlab中,最好是三列向量分开读。
fid = fopen('BX-Book-Ratings.txt');
UserData = textscan(fid,'%f %s
%f','Delimiter',';');
fclose(fid);
User = UserData{:,1};
Isbn = UserData{:,2};
score = UserData{:,3};
Userid = grp2idx(User);
Isbnid = grp2idx(Isbn);
内容快五:
MovieLens 1M的数据,里面的数据排列很规整,都是形如
1::1193::5::978300760
1::661::3::978302109
1::914::3::978301968
的格式,不过有100多万行,读取方式
>> fid =
fopen('MovieLens_1M.txt');
>> A = textscan(fid,'%f %*2s %f %*2s
%f %*2s %f','CollectOutput',1);
>> B = A{:};
>> B(1:10,:)
ans =
1 1193 5 978300760
1 661 3 978302109
1 914 3 978301968
1 3408 4 978300275
1 2355 5 978824291
1 1197 3 978302268
1 1287 5 978302039
1 2804 5 978300719
1 594 4 978302268
1 919 4 978301368
>> fclose(fid);