How to call a function with a char variable

Hello, Can someone help me with a small problem?
I stored my workspace as: s= whos() THe actual values are: s(1).name = A,s(2).name = B
[X Y] = coordinates(A,B) works while
[X Y] = coordinates(s(1).name, s(2).name,1); doesn't work?
How do I resolve this?

1 commentaire

Azzi Abdelmalek
Azzi Abdelmalek le 5 Juil 2015
Modifié(e) : Azzi Abdelmalek le 5 Juil 2015
What is coordinates? Can you post an example?

Connectez-vous pour commenter.

 Réponse acceptée

dpb
dpb le 5 Juil 2015
Don't do this!!! Use save/load or some other form instead.
If you think you really, really must do this for some reason, then you're treading on thin ice -- read the info under eval to see why and alternatives for various programming paradigms. But, with the above caveat,
[X Y] = coordinates(eval(s(1).name), eval(s(2).name,1));
should, presuming that the variables in s(1:2) are appropriate inputs for the function or are indeed A and B after the execution of whos. But, who's to know that's really the case?

2 commentaires

Bharat
Bharat le 5 Juil 2015
I don't understand why I shouldn't but it works! Thanks
dpb
dpb le 5 Juil 2015
Modifié(e) : dpb le 6 Juil 2015
Carry on down this road a while longer and I can assure you that you'll find out why... :)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by