共计 1110 个字符,预计需要花费 3 分钟才能阅读完成。
前言:matlab 字面意思是矩阵实验室,软件重点是数值变量的运算。所以在符号变量和字符串的运算上,性能并不弱小,我用的也不是很多,因而这篇的内容请多多斧正。
1. 符号变量的根本运算
符号变量的根本运算与数值变量一样,加减乘之类的,比方
syms x y(x)
g=x*y
并没有须要特地阐明的。
2. 符号变量的非凡运算
符号变量的非凡运算也与数值变量一样,但一般而言,符号变量都是 1 1 矩阵,因而非凡运算与根本运算个别都是等效的。比方 g =x y 和 g =x.* y 的运算后果齐全一样。
3. 符号变量的罕用函数
数值变量的罕用函数,个别都能够间接用在符号变量上,比方三角函数
syms x
y=sin(x)
a=1
b=sin(a)
这些都是能够通用的,而且函数的含意也齐全一样。
但偏偏有些函数十分蛋疼,对符号变量与数值变量都能够进行操作,但操作的含意齐全不同,比方 diff,diff 对于一个数值变量的运算后果是差分,而对于一个符号变量的运算后果则是求导
syms x
f=diff(sin(x))
a=[1 2 3]
b=diff(a)
运算进去的 f 是 sin(x) 的导数,也就是 cos(x),仍然是个符号变量,而 b 运算后果则是一个差分向量。
另外也存在很多函数只能对数值变量操作,比方离散傅里叶变换 fft。还有很多函数只能对符号变量操作,比方泰勒开展 taylor。因而在 matlab 应用中,肯定要辨别变量的类型,其实真的用起来也好辨别,因为实现特定的计算工作,要么全副用数值,要么全副用符号,这也合乎个别解决问题的准则。
我平时做符号运算比拟少,用到的函数,除了 exp、sin 这类数学运算外,还有:
int 求积分,符号运算特有,能够求定积分,也能够求不定积分,但个别不会写 +C
diff 求导数,符号运算特有
limit 求极限,符号运算特有
ezplot 作图,相似数值变量运算时的 plot
4. 字符串的罕用函数
matlab 中字符串的罕用算符就更少了,但都十分有用,这里介绍几个:
num2str 和 str2num
能够实现数值变量和字符串变量的转换,比方
a=1
b=num2str(1)
运算结果显示 a 是一个数值变量,b 是一个字符串变量,函数名中的 2 就是英文中 to 的意思,也就是把 num 数值类型转化成 str 字符类型。str2num 就是这个函数的反函数,这两个命令联合,能够实现特定的性能,比方提取一个数字的最高位:
a=123456
b=num2str(a)
c=b(1)
d=str2num(c)
另一个罕用函数是 eval,其原理是把“字符串”变成“命令”并执行。但应用过程中须要留神的是,这个命令不能够“编译”,也就是只能在 matlab 内应用,无奈移植到 C,JAVA 等其余语言平台。有须要的能够自行尝试这个命令。