2023-07-06 Matlab中符号和句柄之间的转换.md

发布时间 2023-07-06 19:55:21作者: XNEF

2023-07-06 Matlab中符号和句柄之间的转换

在Matlab中我们通常使用diff函数求导,其中如果f是符号函数,diff也返回符号函数,那么符号函数和句柄之间如何转换呢?下面给出一些例子:

  1. f1 = @(x) sin(x); %函数句柄 
  2. syms x 
  3. f2 = sin(x); %符号 
  4. f3(x) = sin(x); %符号函数 
  5.  
  6. % 赋值计算方法 
  7. a = 15; 
  8. f1(a) %直接得到fx 
  9. f2(a) %报错 
  10. f2s = subs(f2,x,a) %替换符号,得到的还是符号 
  11. eval(f2s) %使用eval计算 
  12. f2d = diff(f2) %可以使用diff对符号求导,结果依旧是符号 
  13. f3e = f3(1) %可以直接带值,但返回的是符号,等同于subs 
  14. eval(f3e) 
  15. f3d = diff(f3) %使用diff求导返回符号函数 
  16.  
  17. %% 将函数句柄转为符号和符号函数 
  18. f1s = f1(x) %返回的符号 
  19. f2sf(x) = f1(x) %返回符号函数 
  20.  
  21. %% 将符号转为函数句柄和符号函数 
  22. f2h = matlabFunction(f2) 
  23. f2h(a) 
  24. f2sf(x) = f2; 
  25.  
  26. %% 将符号函数转为符号和函数句柄 
  27. f3h = matlabFunction(f3) 
  28. f3h(a) 

最后符号函数转为符号没有找到解决办法。