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

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

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!