How can I override a value with an input?
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I have a list of variables with values, but I want to be able to override one of those values with an input. To demonstrate:
function [output] = test(variable, value)
x = 2;
y = 3;
q = 10;
end
And let's say my input is (x, 5). Other than using a bunch of if statements, is there a way to make x = 5?
2 Commenti
Risposta accettata
A Jenkins
il 8 Ago 2014
Some of it depends on how much you want to protect against "bad" values or variable names being passed. But here is a simple trick:
function [output] = test(variable, value)
mydata.x = 2;
mydata.y = 3;
mydata.q = 10;
mydata.(variable)=value
end
........................................................
>> test('x',5)
mydata =
x: 5
y: 3
q: 10
Più risposte (1)
Geoff Hayes
il 8 Ago 2014
Could also just compare the input variable to a set of pre-defined "matches"
function [output] = test(variable, value)
x = 2;
y = 3;
q = 10;
if ischar(variable) && isvector(variable)
if strcmp(variable,'x')
x = value;
elseif strcmp(variable,'y')
y = value;
elseif strcmp(variable,'q')
q = value;
end
end
The above will guard against the case where variable is not a string, and is one of x, y, and q.
0 Commenti
Vedere anche
Categorie
Scopri di più su Startup and Shutdown in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!