我需要从路径存储在名为fpath
的变量中的文件中导入数据,并且输出变量需要具有存储在名为vname
的另一个变量中的名称。
我试图使用eval
功能,但没有成功。
我使用eval([vname '= importdata(fpath);']);
我收到了错误 - Unexpected MATLAB expression
。
谢谢提前。
答案 0 :(得分:1)
文件/tmp/file.txt包含1234567890:
>> fpath = '/tmp/file.txt';
>> vname = 'foo';
>> eval(strcat(vname,'=importdata(''',fpath,''')'));
foo =
1.2346e+09
答案 1 :(得分:0)
你应该只需要
vname = importdata(fpath);
无需eval声明。 Vname应该包含一个包含数据的矩阵。
答案 2 :(得分:0)
如果没有完整的错误消息并且不知道fpath
和vname
变量的类型和值,则很难回答这个问题。使用一些通用变量名称和路径评估eval([vname '= dir(fpath);'])
对我来说很好。
话虽如此,我强烈建议不要使用eval
。很难获得适当的语法,难以调试,并且使MATLAB难以在后台进行优化。第一步是评估(hah)您首先使用eval
的原因。如果您动态生成变量名称,我建议您使用结构接受dynamic field names的能力,而不是诉诸eval
。
例如:
vname = 'myvariable';
fpath = 'C:\test';
counter = 3;
mydata.([vname '_' num2str(counter)]) = dir(fpath);
返回:
mydata =
myvariable_3: [21x1 struct]