Оценить символическое выражение - PullRequest
8 голосов
/ 29 ноября 2009
 syms t;          % Define symbolic var x. 
 y = int( t^2 );  % Calculate integral of x; it should be t^3/3.
 x = [1:10]  

Теперь я хочу вычислить y (x), оно должно быть [1/3, 8/3, .., 1000/3].

1 Ответ

17 голосов
/ 29 ноября 2009

Краткий ответ: используйте subs. Длинный ответ:

 >> syms t;
 >> y = int(t^2) % note: as rzrgenesys187 says, this is t^3/3

 y =

 t^3/3

 >> x = 1:10; % same as x = [1:1:10]            
 >> subs(y, 't', x)   

 ans =

  Columns 1 through 7

     0.3333    2.6667    9.0000   21.3333   41.6667   72.0000  114.3333

   Columns 8 through 10

   170.6667  243.0000  333.3333

Если вы хотите, чтобы выражение y(x) велось как вызов функции, вы можете связать переменную y с помощью анонимной функции:

 >> y = int(t^2);         
 >> y = @(t) subs(y, 't', t); % the 't^3/3' value of y gets bound into the anonymous function
 >> y(x)

 ans =

   Columns 1 through 7

     0.3333    2.6667    9.0000   21.3333   41.6667   72.0000  114.3333

   Columns 8 through 10

   170.6667  243.0000  333.3333

 >> y(2)

 ans =

     2.6667
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...