matlab中常用函数系列二

1、fgetl

tline=fgetl(fid) 从文件中读取行,删除文件换行符(换行符和回车符)

返回由文件标识符fid指示的文件的下一行。如果fgetl遇到文件结束指示符,则返回-1。对于fid的完整描述请参考fopen函数。fgetl函数常用于含有文件换行符的文件。 

matlab中fgetl、fgets、fread函数

2、return语句

return 语句终止当前的命令序列,把控制返回到调用函数或键盘。


3、字符串的比较:

函数strcmp(str1,str2):比较两个字符串是否相同,若相等则返回1值,若不相等则返回0值。

函数strncmp(str1,str2,n): 比较两个字符串的前n个字符是否相同,若相等则返回1值,若不相等则返回0值
 

4、字符串的查找与替换

函数findstr(‘str1’,’str2’):在字符串str1中查找子串str2,返回str2在str1中的起始位置。

函数strrep(‘str1’,’str2’,’str3’):字符串替换
 

5、strsplit和strtok

MATLAB如何分割字符串

6、左除和右除

\(左除): A\B=inv(A)*B, 其中inv(A)表示A逆阵
 

/(右除): A/B=A*inv(B)。
 

扫描二维码关注公众号,回复: 10375346 查看本文章

7、setdiff

aa=[1 2 2 3 4 5];
bb=[3 6];
cc=setdiff(aa,bb)

运行结果:

cc =

     1     2     4     5

C = setdiff(A,B) 返回 A 中存在但 B 中不存在的数据,不包含重复项。C 是有序的。

参考:

setdiff 设置两个数组的差集

8、intersect

MATLAB求数组交集和并集的方法

两个向量A,B,C=intersect(A,B)将A与B分量的交集结果存入C.

intersect可以有三个返回值,如图,后两个分别是交集元素在原有集合中的下标:

9、exist() :存在返回值

exist:主要有两种形式,一个参数和两个参数的,作用都是用于确定某值是否存在;
1. b = exist( a)
      若 a 存在,则 b = 1; 否则 b = 0;
2. b = exist( 'name', 'kind')
      kind 表示 name 的类型,可以取的值为:builtin(内建类型),class(类),dir(文件夹),file(文件或文件夹),var(变量)。

A = exist('name','kind')

返回值的含义如下:

0 不存在则返回值
1 name 可以是变量名,如果存在,返回值
2 函数名、m 文件名,存在则返回值
3 mex 文件、dll 文件,存在则返回值
4 内嵌的函数,存在则返回值
5 p码文件 , 存在则返回值
6 目录,存在则返回值
7 路径,存在则返回值
8 Java class,存在则返回值

示例代码:

前文已经定义变量 ”GPS_DAT“

备注:若出现:~exist(……); 就是将exist(……)的结果取反!

参考:matlab中exist函数用法

10、取整函数:floor round ceil fix

(1) fix朝零方向取整,如fix(-1.3)=-1; fix(1.3)=1;

(2) floor,顾名思义,就是地板,所以是取比它小的整数,即朝负无穷方向取整;

如floor(-1.3)=-2; floor(1.3)=1;floor(-1.8)=-2,floor(1.8)=1

(3) ceil,与floor相反,它的意思是天花板,也就是取比它大的最小整数,即朝正无穷方向取整;

如ceil(-1.3)=-1; ceil(1.3)=2;ceil(-1.8)=-1,ceil(1.8)=2

(4) round四舍五入到最近的整数;

如round(-1.3)=-1;round(-1.52)=-2;round(1.3)=1;round(1.52)=2。

11、cumsum()

cumsum函数通常用于计算一个数组各行、列的累加值。

格式一:B = cumsum(A)

这种用法返回数组不同维数的累加和

如果A是一个向量, cumsum(A) 返回一个向量,该向量中第m行的元素是A中第1行到第m行的所有元素累加和;

如果A是一个矩阵, cumsum(A) 返回一个和A同行同列的矩阵,矩阵中第m行第n列元素是A中第1行到第m行的所有第n列元素的累加和;

如果A是一个多维数组, cumsum(A)只对A中第一个非奇异维进行计算。

格式二:B = cumsum(A,dim)

这种调用格式返回A中由标量dim所指定的维数的累加和。

例如:cumsum(A,1)返回的是沿着第一维(各列)的累加和,cumsum(A,2)返回的是沿着第二维(各行)的累加和。

默认是沿着各列进行累加!cumsum(A)=cumsum(A,1)

参考示例:

 a=[1 2 3;1 2 3;1 2 3 ;1 2 3];

c=cumsum(a,1)

c =

     1     2     3
     2     4     6
     3     6     9
     4     8    12

 b=cumsum(a)

b =

     1     2     3
     2     4     6
     3     6     9
     4     8    12

c=cumsum(a,2)

c =

     1     3     6
     1     3     6
     1     3     6
     1     3     6

12、 diff()

diff函数式用于求导数和差分的.无论是求导数还是差分,其原理是一样的。

示例,具体用法:

(1)前后相邻元素之差

(2)上下相邻行之差

(3)diff(A,1,1) 与 上面类似;即按照行差分

(4)diff(A,1,2),按照列差分

(5)diff(A,2,2)第2个参数为2表示为二阶差分变换.即在diff(A,1,2)的基础上再进行一次列差分变换.

13、numel()

数组中含有的元素个数某一条件下,元素的个数

语法格式:

n = numel(A);

n= numel(A,条件);

14、unique() 去掉矩阵中重复的元素

用法1:b=unique(a)

 释义:取集合a的不重复元素构成的向量

用法2:[c,i,j]=unique(A,'rows')

 释义:

%c 返回不同的行

%i 体现c中元素在原向量(矩阵a)中的行数;
 

 释义:%j 体现原向量(矩阵a)在c中的行位置

用法3:[b,i,j]=unique(a)

 释义:%返回矩阵A中的不同元素

释义: i体现c中元素在原向量(矩阵a)中的位置;

释义: j体现原向量(矩阵a)在c中的位置

参考链接:matlab中unique函数(参考别人的写的,加上了自己的理解)

15、

发布了103 篇原创文章 · 获赞 38 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/wuwuku123/article/details/104940504
今日推荐