matlab中fopen问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中fopen问题相关的知识,希望对你有一定的参考价值。

matlab fid=fopen(['S','A',25,'-','WER','.dat'],'r') 中括号里的东西是什么意思?还有如果fopen中filename如果不填路径只填文件名,例如原本是'd:\char1.txt'改为'char1.txt',这样行不行,如果能打开,打开的路径又是在哪?

确定这个命令可以正常执行?fopen应该是只认字符串的,中间那个25应该识别不出来才对吧……
如果忽略那个25,
第一个问题:matlab可以通过多种方式进行字符串合并,上面的是其中一种——通过矩阵形式 [ ‘abc’,'.txt' ] 等价于 ‘abc.txt’,即相当于fopen(‘SA25-WER.dat’),后面的‘r’代表以只读方式打开。
第二个问题,直接用文件名
(1)不是以只读方式打开,比如把‘r’换成‘w’(只写),这时默认在当前文件夹(current folder)中创建一个文件,文件名就是你输入的,如果有重名的文件,就把旧文件删了;还有一些其他的参数可供选择,可以 help fopen 看看。(2)在path文件夹中有这么个文件(比如fopen(‘aaaa.txt’)),已经把‘d:\123’文件夹加入到了path中(file——set path),则如果是只读格式,如默认时,或者如上面一样加个‘r’,就会搜索所有在path中的文件夹,寻找aaaa.txt文件,有的话(假设完整路径 d:\123\aaaa.txt)打开成功,没有就失败。
参考技术A 如果没有路径只有文件名,那就是文件必须是在当前路径下,否则就会提示找不到文件。

matlab 函数,matlab 语法1

目录

matlab中fullfile使用

MATLAB中fopen、fprintf函数的用法

Matlab之fgetl函数

Matlab中的Inf和NaN

matlab zeros函数的使用

MATLAB feof和~feof函数用法

matlab中sscanf函数的用法 

 matlab中~=

matlab subplot 用法

MATLAB基本语法

matlab 运算符

MATLAB分号(;)使用

MATLAB特殊变量和常量


matlab中fullfile使用


f = fullfile(‘dir1’, ‘dir2’, …, ‘filename’) %fullfile构成地址字符串;

如:输入:f = fullfile(‘C:’,’Applications’,’matlab’,’fun.m’)
得到:f =C:\\Applications\\matlab\\fun.m

MATLAB中fopen、fprintf函数的用法

语法1:FID= FOPEN(filename,permission)

r 读出


w 写入(文件若不存在,自动创建)

a 后续写入(文件若不存在,自动创建)

r+ 读出和写入(文件应已存在)

w+ 重新刷新写入,(文件若不存在,自动创建)

a+ 后续写入(文件若不存在,自动创建))

w 重新写入,但不自动刷新

a 后续写入,但不自动刷新

printf函数可以将数据按指定格式写入到文本文件中。其调用格式为:

数据的格式化输出:fprintf(fid, format, variables)

按指定的格式将变量的值输出到屏幕或指定文件

fid为文件句柄,若缺省,则输出到屏幕

Matlab之fgetl函数

函数功能:从文件中读取一行数据,并去掉行末的换行符。 
语法格式:tline = fgetl(fid) 
fid是通过fopen函数打开文件后得到的一个整型的文件标识。fgetl从这个文件中读取一行数据并丢弃其中的换行符。

  • 如果读取成功,tline容纳了读取到的文本字符串
  • 如果遇到文件末尾的结束标志(EOF),则函数返回-1,即tline值为-1。 

返回的字符串tline并不包含文本行的行终止符。要得到行终止符,可以使用函数fgets。

Matlab中的Inf和NaN

Matlab中的

  1. Inf和-Inf分别代表正无穷和负无穷
  2. NaN表示非数值的值

产生一般是由于0 做了分母或者运算溢出,产生了超出双精度浮点数数值范围的结果,非数值量则是因为0/0,或者Inf/Inf型的非正常运算。

注:两个NaN是不相等的。

matlab zeros函数的使用

第一步在命令行窗口中输入B=zeros(5),按回车键可以看到生成了一个5*5的零矩阵,如下图所示:

 

MATLAB feof和~feof函数用法

函数feof(fid) 用法:文件指针 fid 到达文件末尾时返回“真”值;否则返回“假”;

~feof 是在 feof 前加了“非”:文件指针到达文件末尾时 该表达式值为“假”;否则为“真”;

while ~feof 表示 若 未读到文件末尾 则 继续 循环
while feof 表示 若 未读到文件末尾 则 终止 循环,所以只循环一次就终止

matlab中sscanf函数的用法 

sscanf的基本用法如图,数据列表=sscanf(待读取数据字符串,格式字符串)

 matlab中~=

matlab中~=是不等于的意思,主要用于判断两侧表达式是否不相等,如果两个值比较,是不等于的,那么返回结果为真,是等于的,那么返回结果为假

matlab subplot 用法

就是绘制子图的前后顺序

matlab中find函数


 

注:竖着数!!
条件:find(A==1)
例如:返回的仍然是位置!

3.返回前N个非零元素的位置,find(A,X)
例如:

4.返回最后一个非零值的位置find(A,1,‘last’)

5.返回最后一个非零值的行列位置或者A中非零元素位置

6.[a,b,v] = find(A),找出A中非零元素所在的行和列,分别存储在a和b中,并将结果放在v中.
 

MATLAB基本语法

3 ^ 2	       % 3 raised to the power of 2

当你点击“执行”按钮,或者按“Ctrl+ E”,MATLAB执行它并返回结果:

ans = 9

另外一个例子:

sin(pi /2)	  % sine of angle 90o

当你点击“执行”按钮,或者按“Ctrl+ E”,MATLAB执行它并返回结果:

ans = 1

另外一个例子,

7/0		      % Divide by zero

当点击“执行”按钮,或者按“Ctrl+ E”,MATLAB执行它并返回结果:

ans = Inf
warning: division by zero


matlab 运算符


MATLAB分号(;)使用

MATLAB中分号(;)表示语句结束;但是,如果想抑制和隐藏 MATLAB 输出表达,表达后添加一个分号。

MATLAB特殊变量和常量

以上是关于matlab中fopen问题的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB---fopenfprintf函数

17.matlab中各种文件的I/O操作2——fopen操作

Matlab 中fread的问题

matlab读取任意路径下文件

在matlab中如何把两个txt文件合并到一起

在Matlab中打开多个文件