1. 程式人生 > >MATLAB符號表達式->函式->求值

MATLAB符號表達式->函式->求值

        有時候需要解符號表達式得到某個量關於其他量的顯式表示式,MATLAB解出的結果任然是符號表達式,我們希望可以用這個表示式建構函式,進一步求值。

function test
   syms x y
   y=solve(' x^2+y^2+x*y-y*log(x)=0','y');
   class(y)
   y(1)
   f=cell(1,length(1));
   for i=1:length(y)
       f{i}=eval(['@(x)',vectorize(y(i))]);
   end
   classf=class(f{1})
   f{1}(rand(5))
end

the result  as follow:

classf =

   function_handle


ans =

  -0.5121 + 0.6097i  -0.0088 + 0.0000i  -0.5144 + 0.5851i  -0.5286 + 0.4570i  -0.2353 + 0.0000i
  -0.0040 + 0.0000i  -0.5240 + 0.4956i  -0.5252 + 0.4852i  -0.0218 + 0.0000i  -0.5024 + 0.7524i
  -0.0440 + 0.0000i  -0.0049 + 0.0000i  -0.5025 + 0.7512i  -0.0003 + 0.0000i  -0.5522 + 0.2589i
  -0.0837 + 0.0000i  -0.5394 + 0.3694i  -0.5032 + 0.7352i  -0.5198 + 0.5324i  -0.5497 + 0.2816i
  -0.5329 + 0.4220i  -0.2601 + 0.0000i  -0.0829 + 0.0000i  -0.2712 + 0.0000i  -0.5055 + 0.6951i