MATLAB中的函数的归总
字符串操作函数
1. 函数eval可以用来执行用字符串表示的表达式
2. 函数deblank可以去掉字符串末尾的所有空格
3. 函数findstr可以用来在长字符串中查找一个短的字符串,并返回相应的位置
4. 函数isstr可以用来判断变量是否为字符串
5. 函数isletter可以用来判断字符串中各个元素是否为字母
6. 函数isspace可以用来判断字符串元素是否为空格符
7. 函数lower和upper可以把字符串中的字母转为小写格式和大写格式
8. 函数strcat可以把多个字符串在水平方向上依次连接起来
9. 函数strvcat可以把多个字符串按竖直方向连接起来
10. 函数strcmp可以用来进行字符串的比较,返回1或0
11. 函数strcmpi可以用来忽略英文字母的大小写方式比较字符串
12. 函数strncmp可以用来比较字符串前N个字符是否相同
13. 函数strjust可以用来调整字符串矩阵的对齐方式
14. 函数strmatch可以用来寻找和目标字符串匹配的行
15. 函数strrep可以实现字符串的查找和替代功能
16. 函数strtok可以找出字符串第一个空格符前的字符串
17. 函数texlabel可以把字符串转换成tex软件的格式
18. 不同进制间的转换,bin2hex,bin2dec(‘字符串’);dec2hex(数)=字符串;即十进制数不为字符串, 其它进制为字符串
19. 函数bitget可以用来获取二进制的数位 C=bitget(A,bit),A为一个无符号整形数据
20. 函数bitset可以用来设定某个二进制数位的值 C=bitset(A,bit) 指定数位的数值取反
C=bitset(A,bit,V)指定数位的数值被V替换
21. 函数bitand,bitor和bitxor可以用来进行‘与’,‘或’,‘抑或’数位操作
22. 函数bitshift(A,K),即把A左移K位。
22. size():获取矩阵的行数和列数
对数组矩阵的函数:
1. size():获取矩阵的行数和列数
(1)s=size(A),
当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时矩阵的行数,第二个元素是矩阵的列数。
(2)[r,c]=size(A),
当有两个输出参数时,size函数将矩阵的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量c。
(3)size(A,n)如果在size函数的输入参数中再添加一项n,并用1或2为n赋值,则 size将返回矩阵的行数或列数。其中r=size(A,1)该语句返回的时矩阵A的行数, c=size(A,2) 该语句返回的时矩阵A的列数。
另外,length()=max(size())
在MATLAB中:
size:获取数组的行数和列数
length:数组长度(即行数或列数中的较大值)
numel:元素总数。
s=size(A),当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时数组的行数,第二个元素是数组的列数。
[r,c]=size(A),当有两个输出参数时,size函数将数组的行数返回到第一个输出变量,将数组的列数返回到第二个输出变量。
如果在size函数的输入参数中再添加一项,并用1或2为该项赋值,则size将返回数组的行数或列数。 其中r=size(A,1)该语句返回的时数组A的行数, c=size(A,2) 该语句返回的时数组A的列数。
n=numel(A)该语句返回数组中元素的总数。
n=length(A):如果A为非空数组,返回行数和列数两者之间数值较大的那一个值,即相当于执行了max(size(A));如果A为空数组,则返回0;如果A是一个向量则返回A的长度。n=max(size(A):若A为非空数组,返回A的最大维数;若A为空数组,返回A中最长的非0维数。
23. interpolation(插值)和curve-fitting(曲线拟合)的功能函数。
MATLAB的一维插值函数是interpl,其格式为interpl(x, y, xi,'method')或者interpl(x, y, xi),其中的x, y是已存在的数据,而xi则是要插入其中的数据点。若选用method参数,可以从4种插值算法中选择一种,它们是:nearest、linear、cubic、spline,分别对应最近点、一次、三次方程式和spline函数,其中默认的算法是linear。如果数据的变化较大,以spline函数插值所形成的曲线最平滑,效果最好。而三次方程式所得到的插值曲线平滑度介于线性与spline函数之间。
二维插值是对双变量函数同时做插值,MATLAB提供了interp2和griddate进行二维插值,命令格式是:
interp2(x, y, z, xi, yi);interp2(x, y, z, xi, yi,'method'),method有nearst、bilinear、bicubic、spline4种,其中x, y是已有二维数值,z是由x, y决定的第3个数值,xi, yi则是已知的一对数值,通过插值来找到相应的zi值。griddate的函数格式与此类似,不同之处在于:interp2严格要求x, y单调,而griddate则可以处理无规则的数据。下面给出一个二维插值的例子:
有一个汽车引擎在变转速时,温度与时间(单位为s)的测量值如下:
时间 |
引擎速度和温度 |
||
0 |
2000rpm |
3000rpm |
4000rpm |
1 |
20 |
110 |
176 |
2 |
60 |
180 |
220 |
3 |
68 |
240 |
349 |
4 |
77 |
310 |
450 |
5 |
110 |
405 |
503 |
其中温度从20℃变化到503℃,如果要估计在t=2.6,rpm=2500的温度,可通过下列命令来求得结果:
>> d2(:,1)= [0 1 2 3 4 5]'; % 给出d2矩阵(即表中)的第1列
>> d2(:,2)= [2000 20 60 68 77 110]'; % 给出d2矩阵(即表中)的第2列
>> d2(:,3)= [3000 110 180 240 310 405]'; % 给出d2矩阵(即表中)的第3列
>> d2(:,4)= [4000 176 220 349 450 503]'; % 给出d2矩阵(即表中)的第4列
>> t= d2(2:6 ,1) % 时间值,即取第1列的第2至6项
>> rpm= d2(1, 2:4) % 转速值,即取第1行的第2至4项
>> temp= d2(2:6, 2:4)
% 给出所要寻找(插入)温度的范围,即表中从2行到6行,2列到4列的所有元素
>> temp_i=interp2 (rpm, t, temp, 2500, 2.6)
% 调用二维插值函数求出在给定条件下的值
最后可求得temp_i=140.4000 (℃)
25. rem和mod的区别
如果你不仔细区分的话,可以把rem和mod都当作是求余数的命令。比如,
>> mod(3,2)
ans =
1
>> rem(3,2)
ans =
1
可是,通过看他们的帮助文件可以知道,这两个数的符号一致时的结果是一样的,但是当两个数的符号不一样时,就会出现不同了。
>> mod(3,-2)
ans =
-1
>> rem(3,-2)
ans =
1
主要区别在rem(x,y)命令返回的是x - n.*y,如果y不等于0,其中的n = fix(x./y),而MOD(x,y)返回的是x - n.*y,当y不等于0时,n = floor(x./y)
因此他们之间的区别主要在与fix与floor的区别。fix是想最近的整数取整,而floor是向负无穷取整。