我有一个Matlab mat文件,它有以下变量:
variable0
variable1
variable2
variable3
是否可以动态索引它们并进行修改,如下所示:
function setVariable(obj, variableNum, data)
obj.matFile.(variable0+variableNum) = data;
end
所以,如果有人通过0变量0被修改,如果有人通过3然后变量3。我知道这段代码不起作用,这只是我尝试过的一些例子。我目前的解决方案是使用switch语句。这不像在C ++代码中那么好,我使用上面的索引。我希望C ++和Matlab尽可能接近。
ANSWER
我是这样做的,它正在发挥作用:
eval(sprintf('obj.matfile_variable%d = data;', variableNum));
答案 0 :(得分:0)
function setVariable(obj, variableNum, data)
% check if variableNum is numeric
if isnumeric(variableNum)
variableNum = num2str(variableNum);
varName = strcat('variable',variableNum);
else
varName = strcat('variable',variableNum);
end
obj.matFile.(varName) = data;
end
这应该可以解决问题。
答案 1 :(得分:0)
使用
怎么样?obj.matFile(variableNum).data = data;