How to call element from vector out of t = @(theta) x*cos(thet​a)-y*sin(t​heta);

4 views (last 30 days)
x = linspace(1,10,10);
y=x;
t = @(theta) x*cos(theta)-y*sin(theta);
t(0.1) will give me vector. How to get element 5 ?

Accepted Answer

Star Strider
Star Strider on 13 Mar 2015
My approach:
tv = t(0.1);
t5 = tv(5) % Element 5
  2 Comments
Ole
Ole on 13 Mar 2015
Edited: Ole on 13 Mar 2015
Thanks. I was hoping theres some trick without the need of allocating it again t(0.1)(5) .
Star Strider
Star Strider on 13 Mar 2015
Edited: Star Strider on 13 Mar 2015
My pleasure.
Unfortunately, not.
The only way around it is to include ‘x’ and ‘y’ as arguments, then reference the 5th element of each:
txy = @(theta,x,y) x*cos(theta)-y*sin(theta);
t5 = txy(0.1,x(5),y(5))
----------
This strange construction actually works (it creates a cell array, and then references the 5th element and assigns the correct value to t5), but throws an annoying error and halts execution of the script:
t5 = {t(0.1)}(5)

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!