【发布时间】:2016-12-01 13:54:39
【问题描述】:
我有一个 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 尽可能接近。
回答
我是这样做的,它正在工作:
eval(sprintf('obj.matfile_variable%d = data;', variableNum));
【问题讨论】:
-
你的意思是
sprintf('variable%d',variableNum)吗? -
但是如何使用字符串调用mat文件呢?
-
您的意思是如何使用字符串将mat文件加载到Matlab对象中?如果是这样,您需要
matfile(filename)函数来创建一个 matfile 对象。老实说,我认为它不会只在一条线上起作用。您可能还需要一些数据检查。
标签: matlab