MATLAB如何由数值矩阵转化为符号矩阵
由于数值型和符号型是MATLAB的两种不同数据类型,因此在MATLAB中,分属于这两个数据类型的变量之间不能直接运算,而是在MATLAB的工作空间内将数值型变量转换为符号型变量后进行计算。这个转化过程是在系统内部自动完成的,也可通过命令将数值量转化为符号量,并将这个新产生的符号量赋值给另一个变量,以利于后面的计算。
将一个数值矩阵M转化为符号矩阵S的命令为:
s=sym(M)
例题 数值矩阵转化为符号矩阵
>> M=[1 2 3 4;5 6 7 8;9 10 11 12]
M =
1 2 3 4
5 6 7 8
9 10 11 12
>> S=sym(M)
S =
[ 1, 2, 3, 4]
[ 5, 6, 7, 8]
[ 9, 10, 11, 12]
说明:不管原来数值矩阵M是分数还是浮点数形式赋值的,但当它被转化为符号矩阵后,都将以最接近原数的精确有理形式给出,例如下面的程序:
>> M=[2/3 0.25 3.67;4^0.1 pi 7.23;sin(2)log(5)1/9]
M =
0.6667 0.2500 3.6700
1.1487 3.1416 7.2300
0.9093 1.6094 0.1111
>> S=sym(M)
S =
[ 2/3, 1/4, 367/100]
[5173277483525749/4503599627370496, pi, 723/100]
[4095111552621091/4503599627370496,7248263982714163/4503599627370496, 1/9]