0

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

我的文件结构如下所示:

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)

有谁知道发生了什么?

4

1 回答 1

1

eval需要一个字符串作为输入,因此它试图将您给它的输入(不是字符串)评估为变量或脚本的名称。要在 resultsFiles(i).name 中赋予它值,这应该有效:

eval(sprintf('%s', resultsFiles(i).name));
于 2012-08-16T01:32:14.387 回答