Matlab eval在使用简单的matlab脚本时遇到了麻烦

时间:2012-08-16 01:23:05

标签: file matlab eval

所以我有一个脚本应该运行一系列其他脚本,从中收集数据并使用这些数据。

我的文件结构如下:

Results
    -result001.m
    -result002.m
    ...
    -result100.m
    -DataFromICP.m

现在dataFromICP应该简单地遍历所有结果并将它们连接到一个名为pointsAndTimeS的结构:

resultsFiles = dir('result*');
pointsAndTimeS = struct('points', zeros(length(resultsFiles)), 'times', zeros(length(resultsFiles)));
resultsFiles
count = 1;
for i = 1:length(resultsFiles)
     resultsFiles(i).name
     eval(resultsFiles(i).name)
     pointsAndTimesS.points(i) = numberOfPointsRead;
     pointsAndTimesS.times(i) = PoseEstimates(length(PoseEstimates)).timeElapsed;

end

现在它正确地遍历文件,即:

resultsFiles = 

3x1 struct array with fields:
name
date
bytes
isdir
datenum

其中名称为result001.m至result100.m

但我从eval那里得到错误说:

Undefined variable "result10" or class "result10.m".

Error in DataFromICP (line 7)
   eval(resultsFiles(i).name)

有谁知道发生了什么事?

1 个答案:

答案 0 :(得分:1)

eval期望一个字符串作为输入,因此它试图将您提供的输入(不是字符串)作为变量或脚本名称进行评估。为了给它resultFiles(i).name中的值,这应该有效:

eval(sprintf('%s', resultsFiles(i).name));