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

2 visualizzazioni (ultimi 30 giorni)
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 ?

Risposta accettata

Star Strider
Star Strider il 13 Mar 2015
My approach:
tv = t(0.1);
t5 = tv(5) % Element 5
  2 Commenti
Ole
Ole il 13 Mar 2015
Modificato: Ole il 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 il 13 Mar 2015
Modificato: Star Strider il 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)

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by