在Matlab中将变量命名为string

时间:2015-02-27 16:20:46

标签: matlab

假设变量FileName包含一个字符串,例如Name1。如何使用名称Name1创建变量?

此页面上的示例4似乎相似,但我无法让它工作。这是正确的方法吗? http://se.mathworks.com/help/matlab/ref/genvarname.html

2 个答案:

答案 0 :(得分:3)

您在“示例4”中看到的内容被认为是错误的编程风格。该文档还包含to avoid eval

的部分

我建议使用动态字段名称来实现类似的结构。

filename='name1';
mydata=struct();
mydata.(genvarname(filename))=load(filename);

除了更好的性能外,您还可以在处理多个文件时获得其他功能。例如structfun将函数应用于您的所有数据,或fieldnames以获取所有文件名。

答案 1 :(得分:1)

对于您想要做的事情,eval功能适合您:

FileName = 'Name1';
eval([FileName ' = 18;']);      % Executes "Name1 = 18;"

现在变量Name1已创建,其值为18

函数genvarname有不同的用途,即生成可接受的和非冲突的变量名,而不是变量本身。