matlabfopen函数的用法(matlab fopen函数能打开excel数据吗)

本文目录
- matlab fopen函数能打开excel数据吗
- 关于matlab fscanf函数
- Matlab文件夹、文件、读取操作(汇总)
- matlab fclose函数怎么用
- 如何用Matlab的fopen函数读入一幅bmp图像
- matlab中读取TXT文件,放到两维的矩阵里
matlab fopen函数能打开excel数据吗
matlab的fopen函数与C语言的fopen函数的功能是类似的,主要可用于打开文本文件,如下面一段程序用于打开文件’fgetl.m’,并逐行读取,显示:
fid
=
fopen(’fgetl.m’);
tline
=
fgetl(fid);
while
ischar(tline)
disp(tline);
tline
=
fgetl(fid);
end
fclose(fid);
fopen不便于获取excel中的数据;
若想打开excel文件,并获取其中的数据,建议使用xlsread函数,例如:
excel文件
testdata1.xls
包含如下数据:
1
6
2
7
3
8
4
9
5
10
如想读出数据到matlab中,可使用如下语句:
A
=
xlsread(’testdata1.xls’)
A
=
1
6
2
7
3
8
4
9
5
10希望对你有帮助,具体可查询matlab的帮助。
关于matlab fscanf函数
matlab中的fscanf的用法如下:
a=fscanf(fid,format)
[a,
count]=fscanf(fid,format,size)
[a,
count]=fscanf(fid,format,size)
个人感觉用的最多的是
这样的形式:
data
=
fscanf(fid,format,size);
其中data为读取内容的数组,大小由size决定。size是一个[m
n]的向量,
m为行,n为列(注意,这里读取的顺序是按列优先排列的,不明白的话可以看
下面的例子),若n取inf表示读到文件末尾。fid为fopen打开文件的返回值,
format是格式化参数(像printf、scanf)。
举个小例子:
路径+文件名:d:\moon.txt
内容:13,1,3.4
3,2.1,23
1,12,2
4,5.4,6
现在为了读取moon中的数据存在一个数组里,可以用如下方法
fid=fopen(’d:\moon.txt’);
data_1
=fscanf(fid,’%f,%f,%f’,)
;%这里得用单引号
data_2
=fscanf(fid,’%f,%f,%f’,)
data_3
=fscanf(fid,’%f,%f,%f’,)
fclose(fid);
这时data_1,
data_2,
data_3分别是一个数组,其内容分别如下:
data_1
13
3
1
4
1
2.1
12
5.4
4
23
2
6
data_2
13
3.4
2.1
1
2
4
1
3
23
12
4,5
6
data_3
13
3.4
1
3
由此可见,读数据的时候,从多维数组的水平方向,一个一个读取,传递给新的数组时,从列方向优先。
Matlab文件夹、文件、读取操作(汇总)
在Windows中,“D:\”表示D盘,“D:”表示目录
还可以查找特定后缀的文件:
如: dir() 表示查找 fk文件夹下后缀为 ’ .jpg’ 的文件
若 fk 目录下存在后缀为’.jpg’ 的文件,则返回文件名:
1260500466587.jpg 1260500472025.jpg 8673601d.jpg
否则返回: 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_data.txt’);
如果想把4列数据全部读取出放在4个变量中,则使用如下命令:
》》 =textread(’my_exam.dat’,’%s %s %f %s’)
函 数| csvwrite| diary| dlmwrite| fprintf| save
-|-|-
数 据 类 型| 数值数据| 数值数据或单元阵列| 数值数据| 字母和数值数据| 数值数据
分 隔 符| 逗号| 空格| 任何字符| 任何字符| 制表符或空格符
存写有分隔符的ASCII码数据文件 若要将当前的MATLAB工作空间的一个或多个变量写到一个有分隔符的ASCII码文件中,可以使用save命令或dlmwrite函数。在默认情况下,save命令是以 MAT 格式存写数据的。
作用 | 标志 | 例子
-|-
左对齐 | ’ - ’ | %-5.2f
打印符号字符(+或 - ) | ’+’ | %+5.2f
插入空格| ’ ’ | % 5.2f
垫零 | ’0’ | %05.2f
对%o, %x, %X, 打印 0,0x,0X的前缀。
对%f, %e, %E, 打印小数点,即使是0。
对%g, %G,不删除或尾部的零或小数点。 | ’#’ | %#5.0f
例: 创建一个2×2的魔方矩阵,然后打开一文件,写入数据。
fseek frewind
设定指针位置重设指针到文件起始位置
ftell feof
获得指针位置测试指针是否在文件结束位置
matlab fclose函数怎么用
fclose一般与fopen成对使用。
在matlab中打开文件要使用fopen函数。
最简单的例子:
fileID = fopen(filename)
然后就会生成一个fileID的值,这个值将标记这个文件,对文件的读写操作都是通过这个值来进行的。
当不需要对文件进行操作之后,就可以使用fclose函数对这个文件进行关闭。
简单的例子如下:
fclose(fileID)
说明:
fclose的matlab帮助文档解释是:
关闭一个打开的fileID的文件,fileID是一个通过fopen函数获取到的整数。
如何用Matlab的fopen函数读入一幅bmp图像
fp = fopen(filename,’rb’);
if (fp《0) error(), end
ident = fread(fp,2,’uchar’)’; % should be ’BM’ for .BMP file type
filesize = fread(fp,1,’long’); % length of file
dummy = fread(fp,1,’long’); % two ‘short’ reserved words (future?)
offset = fread(fp,1,’long’); % number of bytes before bitmap starts
unknown = fread(fp,1,’long’); % size of this header (?)
width = fread(fp,1,’long’); % number of cols
height = fread(fp,1,’long’); % number of rows
one = fread(fp,1,’short’); % number of planes
bits_pix = fread(fp,1,’short’); % 2,4,or 8
compress = fread(fp,1,’long’); % 0 = uncompressed, 1 = RLE
SizeImage= fread(fp,1,’long’); % size of the image (bytes)
horiz_res= fread(fp,1,’long’); % horizontal resolution (pixels/meter)
vert_res = fread(fp,1,’long’); % vertical resolution (pixels/meter)
num_color= fread(fp,1,’long’); % number of colors
imp_color= fread(fp,1,’long’); % number of important colors (!)
matlab中读取TXT文件,放到两维的矩阵里
1)打开文件
在读写文件之前,必须先用fopen函数打开或创建文件,并指定对该文件进行的操作方式。fopen函数的调用格式为:
fid=fopen(文件名,‘打开方式’)
说明:其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。文件名用字符串形式,表示待打开的数据文件。常见的打开方式如下:
‘r’:只读方式打开文件(默认的方式),该文件必须已存在。
‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。
‘w’:打开后写入数据。该文件已存在则更新;不存在则创建。
‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。
‘a’:在打开的文件末端添加数据。文件不存在则创建。
‘a+’:打开文件后,先读入数据再添加数据。文件不存在则创建。
另外,在这些字符串后添加一个“t”,如‘rt’或‘wt+’,则将该文件以文本方式打开;如果添加的是“b”,则以二进制格式打开,这也是fopen函数默认的打开方式。
2)关闭文件
文件在进行完读、写等操作后,应及时关闭,以免数据丢失。关闭文件用fclose函数,调用格式为:
sta=fclose(fid)
说明:该函数关闭fid所表示的文件。sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回-1。如果要关闭所有已打开的文件用fclose(‘all’)。
2、二进制文件的读写操作
1)写二进制文件
fwrite函数按照指定的数据精度将矩阵中的元素写入到文件中。其调用格式为:
COUNT=fwrite(fid,A,precision)
说明:其中COUNT返回所写的数据元素个数(可缺省),fid为文件句柄,A用来存放写入文件的数据,precision代表数据精度,常用的数据精度有:char、uchar、int、long、float、double等。缺省数据精度为uchar,即无符号字符格式。
例6.8 将一个二进制矩阵存入磁盘文件中。
》》 a=;
》》 fid=fopen(’d:\test.bin’,’wb’) %以二进制数据写入方式打开文件
fid =
3 %其值大于0,表示打开成功
》》 fwrite(fid,a,’double’)
ans =
9 %表示写入了9个数据
》》 fclose(fid)
ans =
0 %表示关闭成功
2)读二进制文件
fread函数可以读取二进制文件的数据,并将数据存入矩阵。其调用格式为:
=fread(fid,size,precision)
说明:其中A是用于存放读取数据的矩阵、COUNT是返回所读取的数据元素个数、fid为文件句柄、size为可选项,若不选用则读取整个文件内容;若选用则它的值可以是下列值:N(读取N个元素到一个列向量)、inf(读取整个文件)、(读数据到M×N的矩阵中,数据按列存放)。precision用于控制所写数据的精度,其形式与fwrite函数相同。
3、文本文件的读写操作
1)读文本文件
fscanf函数可以读取文本文件的内容,并按指定格式存入矩阵。其调用格式为:
=fscanf(fid,format,size)
说明:其中A用来存放读取的数据,COUNT返回所读取的数据元素个数,fid为文件句柄,format用来控制读取的数据格式,由%加上格式符组成,常见的格式符有:d(整型)、f(浮点型)、s(字符串型)、c(字符型)等,在%与格式符之间还可以插入附加格式说明符,如数据宽度说明等。size为可选项,决定矩阵A中数据的排列形式,它可以取下列值:N(读取N个元素到一个列向量)、inf(读取整个文件)、(读数据到M×N的矩阵中,数据按列存放)。
2)写文本文件
fprintf函数可以将数据按指定格式写入到文本文件中。其调用格式为:
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’); %得到文件号
);
%把文件号1的数据读到f中。其中f是的矩阵
%这里’%f %f’表示读取数据的形势,他是按原始数据型读出
fclose(fid);
%关闭文件
另外有的txt文件还可以用load来打开
其语句为
f=load(’fx.txt)
一个写入txt文件的小例子:
N=100;
R=rand(1,N);
fid = fopen(’tt.txt’,’wt’);
for k=1:N;
p=num2str(R(k));
fprintf(fid,’%c’,p);
fprintf(fid,’%c\n’,’ ’);
end
fclose(fid);

本文相关文章:
excel怎么用vlookup函数(如何在Excel中使用VLOOKUP函数)
2026年8月29日 11:50
round求和函数怎么用(round函数如果要取几个单元格相加后的取整怎么操作,例如:算1+2+3+8+9这个数相加起来的取整)
2026年10月8日 05:30
虚析构和纯虚析构函数(我是新手,问C++的析构函数,或者虚析构函数,不知它是什么意思呀)
2026年9月24日 02:10
random函数matlab(如何用matlab生成随机数函数)
2026年9月18日 01:40
bool函数默认返回值(c语言 如果要定义函数的返回类型为布尔类型,怎么定义)
2026年9月17日 17:20
counta函数用法(excel中的counta函数怎么用)
2026年9月13日 13:10
matlab meshgrid用法(MATLAB中mesh函数的用法是怎样的)
2026年8月27日 10:20
更多文章:
struts作用(请简单谈一下spring,struts,hibernate的作用;)
2026年10月22日 05:20
low power是什么意思(MP3打开以后提示Low power!是什么意思啊)
2026年10月22日 03:50
律师资格证报考条件非法律专业(不是法学专业的可以考律师证吗)
2026年10月22日 02:40
变量名可以是汉字吗(c++变量可以是中文吗,我大一刚学c++,这个不是太懂)
2026年10月22日 00:50





