How can I override a value with an input?
조회 수: 2 (최근 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!