MATLAB学习笔记(1)

时间:2024-03-23 07:47:34
  • fopen

打开文件或者得到文件打开的信息。

例如:

>>fid=fopen(f);        %打开文件,

 

fid=-1表示打开文件失败;fid=1表示输出stdout;fid=2表示错误信息文件;fid=其他正数表示文件打开成功,并返回文件编号。(fid=1,2不需打开)

>> fid = fopen(f,’r’);   %以读(r)的方式打开文件;

打开方式有:r, w, a, r+, w+, a+, A, W

>>[fid,message] = fopen(filename, mode, machineformat)
  • fread

fread用于读取文件中的内容,需要和fopen, fclose配合使用,返回的是ASCII码,可以指定返回字节数返回的格式。例如:

>> f=fullfile('D:','Matlab','example.txt'); 

>> fid = fopen(f, 'r'); 

>>a=fread(fid);         %读取文件全部内容,返回的是每个字节的ASCII码
>>b=fread(fid,5);             %读取文件中的前5个字符,返回的是这5个字节的ASCII码

>>c=fread(fid,5, 'uint8=>char');           %读取文件中前5个字符并以字符char格式返回 

>>d=fread(fid,’*char’);             %读取文件中全部内容并以字符串的格式返回 (a,b,c,d每句是一个单独语句与其他语句无关)
>>e1=fread(fid,5,’*char’);         %读取文件中前5个字符并以字符串的格式返回
>>e2=fread(fid,8,’*char’);         %读取fid指向位置开始后面的8个字符并以字符串的格式返回(e2与e1一起使用时)

>>fclose(fid)

This MATLAB function reads data from an open binary file into column vector A    and positions the file pointer at the end-of-file marker.

 

    A = fread(fileID)

    A = fread(fileID,sizeA)

    A = fread(fileID,sizeA,precision)

    A = fread(fileID,sizeA,precision,skip)

    A = fread(fileID,sizeA,precision,skip,machinefmt)

[A,count] = fread(___)

功能:

fread函数可从文件中读取二进制数据

语法:

A = fread(fid, count)

A = fread(fid, count, precision)

其中fid为指针所指文件中的当前位置,count指读取的数据个数, precision表示以什么格式的数据类型读取数据。

 

  • length

size函数——获取数组的行数和列数

>> size(points)

ans =

      122626           3

length函数——数组长度,即行数和列数中的较大值,相当于max(size(a))

>> length(points)

ans =

      122626

numel——返回元素总数(行乘以列)

>> numel(points)

ans =

      367878
  • axis

axis    用于操作普通的坐标属性,(轴的缩放和外观)。

axis( [xmin xmax ymin ymax] )    设置当前坐标轴 x轴 和 y轴的限制范围

axis( [xmin xmax ymin ymax zmin zmax cmin cmax] ) 设置 x,y,z轴的限制范围和色差范围。

v = axis 返回一个行向量,记录了坐标范围

axis auto 解除限制,恢复到默认状态

MATLAB学习笔记(1)

 

  • matlab中波浪号~的作用和用法

在matlab中,波浪号 ~(也就是键盘上数字键1 旁边的那个)主要有两个用法:

第一是代表与或非中的非,如在以下代码中:

>>if ~flag

       ……

End

只有在flag为0或false时,才会执行省略号对应的部分。

另外,matlab中不等号的写法是:~=

第二是代表忽略输出参数,如unique函数有三个输出参数,而我们只需要第二个参数,那可以这样:

[~,rank,~]=unique(array,'rows');

代表我们忽略了第一和第三个参数,而如果我们不加波浪号的话

rank=unique(array,'rows');

这表示接收第一个参数,就不是我们想要的啦。

 

  • matlab中怎么判断输入是不是空的, isempty

A  = ‘ ’

a = isempty (A)

a = 1

如果是空的输入,则ans会等于 1 ,如果不是空的输入,那么ans则会等于0

  • matlab 中|、||、~、&、&&都是什么含义

| 表示或

||同样表示或,但是更智能一点,

举个例子A||B,如果A为真则A||B就为真,不会判断B的真假,

但只能对标量操作,而|可对矩阵操作。

~表示非

还有

&表示与

&&也表示与,若A&&B,A为假,则不判断B,A&&B为假,

但只能对标量操作,而&可对矩阵操作。