How can I override a value with an input?
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Andrew
am 8 Aug. 2014
Beantwortet: Geoff Hayes
am 8 Aug. 2014
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 Kommentare
Akzeptierte Antwort
A Jenkins
am 8 Aug. 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
Weitere Antworten (1)
Geoff Hayes
am 8 Aug. 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 Kommentare
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!