MATLAB常用函数
Matlab的内部常数
pi 圆周率
exp(1) 自然对数的底数e
i 或j 虚数单位
Inf或 inf 无穷大
Matlab的常用内部数学函数
指数函数 |
exp(x) |
以e为底数 |
对数函数 |
log(x) |
自然对数,即以e为底数的对数 |
log10(x) |
常用对数,即以10为底数的对数 |
|
log2(x) |
以2为底数的x的对数 |
|
开方函数 |
sqrt(x) |
表示x的算术平方根 |
绝对值函数 |
abs(x) |
表示实数的绝对值以及复数的模 |
三角函数 (自变量的单位为弧度) |
sin(x) |
正弦函数 |
cos(x) |
余弦函数 |
|
tan(x) |
正切函数 |
|
cot(x) |
余切函数 |
|
sec(x) |
正割函数 |
|
csc(x) |
余割函数 |
|
反三角函数
|
asin(x) |
反正弦函数 |
acos(x) |
反余弦函数 |
|
atan(x) |
反正切函数 |
|
acot(x) |
反余切函数 |
|
asec(x) |
反正割函数 |
|
acsc(x) |
反余割函数 |
|
双曲函数
|
sinh(x) |
双曲正弦函数 |
cosh(x) |
双曲余弦函数 |
|
tanh(x) |
双曲正切函数 |
|
coth(x) |
双曲余切函数 |
|
sech(x) |
双曲正割函数 |
|
csch(x) |
双曲余割函数 |
|
反双曲函数
|
asinh(x) |
反双曲正弦函数 |
acosh(x) |
反双曲余弦函数 |
|
atanh(x) |
反双曲正切函数 |
|
acoth(x) |
反双曲余切函数 |
|
asech(x) |
反双曲正割函数 |
|
acsch(x) |
反双曲余割函数 |
|
求角度函数 |
atan2(y,x) |
以坐标原点为顶点,x轴正半轴为始边,从原点到点(x,y)的射线为终边的角,其单位为弧度,范围为(, ] |
数论函数 |
gcd(a,b) |
两个整数的最大公约数 |
lcm(a,b) |
两个整数的最小公倍数 |
|
排列组合函数 |
factorial(n) |
阶乘函数,表示n的阶乘
|
复数函数
|
real(z) |
实部函数 |
imag(z) |
虚部函数 |
|
abs(z) |
求复数z的模 |
|
angle(z) |
求复数z的辐角,其范围是(, ] |
|
conj(z) |
求复数z的共轭复数 |
|
求整函数与截尾函数 |
ceil(x) |
表示大于或等于实数x的最小整数 |
floor(x) |
表示小于或等于实数x的最大整数 |
|
round(x) |
最接近x的整数 |
|
最大、最小函数 |
max([a,b,c,...]) |
求最大数 |
min([a,b,c,..]) |
求最小数 |
|
符号函数
|
sign(x) |
|
Matlab中的数学运算符
a+b |
加法 |
a./b |
数组右除 |
a-b |
减法 |
a.\b |
数组左除 |
a*b |
矩阵乘法 |
a^b |
矩阵乘方 |
a.*b |
数组乘法 |
a.^b |
数组乘方 |
a/b |
矩阵右除 |
-a |
负号 |
a\b |
矩阵左除 |
\' |
共轭转置 |
|
|
.\' |
一般转置 |
Matlab的关系运算符
== |
等于 |
< |
小于 |
> |
大于 |
<= |
小于或等于 |
>= |
大于或等于 |
~= |
不等于 |
fopen:对(或新建的)文件进行读写
fprintf:对文件进行写入
round:求最接近的整数
fclose(fileID):关闭打开的文件
Dec2bin(x,n):把x转换成n位二进制数;
Fliplr:对矩阵进行左右的颠倒
Bin2dec(binarystr)
Eg:bin2dec(‘01011’)
Round:对数据进行四舍五入
Real:
Imag:
Mean:求平均值
Roots:
gcd
lcm
======================================================================
用MATLAB仿真LMS算法,可是程序一不小心就会溢出,程序RUN一次时间又很长,所以希望能当判断到某个数为INF时就让程序停止下来。
开始查到了快捷键:Ctrl+C,但是我知道它是不能判断的,只能手动。
之后又看到有人提到:error,return,break等函数
Error :
Return:退出调用的函数,在help 中有这样的例子。
Example
function d = det(A)
if isempty(A)
d = 1;
return
else
。。。。
end
Break:退出包含break最里层循环,终止正在执行的while或FOR循环。
可能是MATLAB用的少,在MATLAB中现在学会了用for去作遍历,把所要尝试的数据都试下。
disp.
============================================================
B=A(1:N)%读取前N个数
在MATLAB中建立了一个矢量,怎样提取它的一个成员
在命令窗中输入如下程序:
>> x = [1 2 3 4 5];
>> for i = 1 : length(x)
z = x(i)
end
运行结果如下 :
z =
1
z =
2
z =
3
z =
4
===============================================================
从网上找到的一段程序:
a=[1,3,8,7,13,14,17];
a(a==13)=[]
a =
1 3 8 7 14 17
================================================================
1)fix(x) : 截尾取整
>> fix( [3.12 -3.12])
ans =
3 -3
(2)floor(x):不超过x 的最大整数.(高斯取整)
>> floor( [3.12 -3.12])
ans =
3 -4
(3)ceil(x) : 大于x 的最小整数
>> ceil( [3.12 -3.12])
ans =
4 -3
(4)四舍五入取整
>> round([3.12 -3.12])
ans =
3 -3
mod 模数求余
rem 求余数
>> a=[1 2 3;4 5 6;7 8 9];
>> size(a)
ans =
3 3