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

2 vues (au cours des 30 derniers jours)
Ole
Ole le 13 Mar 2015
Modifié(e) : Star Strider le 13 Mar 2015
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 ?

Réponse acceptée

Star Strider
Star Strider le 13 Mar 2015
My approach:
tv = t(0.1);
t5 = tv(5) % Element 5
  2 commentaires
Ole
Ole le 13 Mar 2015
Modifié(e) : Ole le 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 le 13 Mar 2015
Modifié(e) : Star Strider le 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)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by