tags:

views:

234

answers:

1
 syms t;          % define symbolic var x 
 y = int( t^2 );  % calculate integral of x; it should be t^3/3
 x = [1:10]

Now I want to calculate y(x), it should be [1/3,8/3,..,1000/3]

+4  A: 

Short answer: use subs. Long answer:

>> 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

If you want to make the expression y(x) behave like function invocation, you can bind the variable 't' using an anonymous function:

>> 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
SCFrench

related questions