类型是sym的数字转化为char型
x = sym(\'2*sqrt(5) + pi\') % sym型的数字 s = num2str(double(x)) % 将sym型的数字转化为char型
matlab中的sym数据类型转换为double型
>> root=solve(\'x^2+5*x-10\') root = -5/2+1/2*65^(1/2) -5/2-1/2*65^(1/2) >> class(root) ans = sym >> root=double(root) root = 1.5311 -6.5311 >> class(root) ans = double
sym型变量与char型的区别与转化
char 就是将一般的表达式转换为字符串,但是有几个技巧需要注意的
1、可以直接将cell转换为字符串数据
>> {\'MATLAB技术论坛\',\'matlabsky\',\'http://www.matlabsky.com\'} ans = \'MATLAB技术论坛\' \'matlabsky\' \'http://www.matlabsky.com\' >> char(ans) ans = MATLAB技术论坛 matlabsky http://www.matlabsky.com
2、可以将数值直接转换为ascii码字符
>> char(97) ans = a
3、char可以将多个不等长的字符串组合成一个字符数组,而此时此时不能直接使用[]来构建的
>> char(\'MATLAB技术论坛\',\'matlabsky\',\'http://www.matlabsky.com\') ans = MATLAB技术论坛 matlabsky http://www.matlabsky.com
sym 是将字符串或者数字转换为符号变量,用于符号工具箱运算,但是注意符号工具箱很多参数可以直接使用字符串,而未必一定是符号变量,这就是因为在函数的内部默认会执行下sym,将你的字符串转。
1、将字符串转换为符号变量
>> sym(\'x+8+y*t\') ans = x + t*y + 8 >> class(ans) ans = sym
2、将数值转化为你符号变量,此时会自动分数有理化
>> sym(5.69) ans = 569/100