How can I override a value with an input?
4 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
A Jenkins
2014-8-8
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
更多回答(1 个)
Geoff Hayes
2014-8-8
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Startup and Shutdown 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!