Matlab MAT文件中的动态切换

时间:2016-11-30 06:37:46

标签: matlab

我有一个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));

2 个答案:

答案 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;