How do i make print the variable name for a certain variable
Mostra commenti meno recenti
Suppose there's this array [a,b,c,d . . . ].I'm trying to write a program that takes the product of two variables a and b and if a*b is in the array then it will print the variable name. For example if a=3 b=2 and c=6 then myfunction(a,b) will return the string'c'
4 Commenti
Adrian Stannard
il 3 Ott 2016
A starting point for doing this is:
find(array==a*b)
This returns the index where a*b exists, or else a null matrix. Then the question is how do you want use the result? E.g. to simply return the value it would be: array(find(array==a*b)) Again if the value does not exist then you would get a null matrix which your function could return.
George
il 3 Ott 2016
Why do you want to do this?
How is c defined? e.g., where does it come from?
Robert Stuckey
il 3 Ott 2016
Guillaume
il 3 Ott 2016
"Suppose there's this array [a,b,c,d . . . ]"
There is no array [a,b,c,d...]. There may be an array that is the result of concatenating [a,b,c,d...] but at this point matlab does not know anymore that the array values came from a,b,c and d.
Your whole setup sounds like a bad idea. There is never a good reason for a function to return the name of a variable.
Risposte (2)
Gareth Thomas
il 3 Ott 2016
myw=who;
now all you need to do is cycle through the values of the variables and return the myw.name(ind)
Gareth Thomas
il 3 Ott 2016
If I understand you correctly you would like to print a the content of a variable.
a = 2;b = 3;c = a*b;disp(c)
1 Commento
Robert Stuckey
il 3 Ott 2016
Categorie
Scopri di più su Matrices and Arrays in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!