输出多个数据集的功能

时间:2012-11-12 16:28:12

标签: loops dataset

我在MATLAB工作。 我有一个函数循环遍历目录中的所有文件,运行它们并将它们的数据集输出连接成一个数据集。

有没有办法可以改变我的功能,以便输出所有单独的数据集以及统一数据集?

下面,名为“FileInfo”的数组有3列。第一个是文件名,第二个和第三个列是输入

 function [AllFunOutputs] = RunAllFuns(FileInfo)     
 fileDir  = dir('C:\MATLAB\Funs');   % get all file names in directory 'Funs'
 files = {fileDir.name};                             
 funNames = strrep(files, '.m', '');  % strip the '.m' suffix from all files 
 funNames(:,1:2) = [];    
 funNames = transpose(funNames);

k = 1;               % below, match the function name with its argument
  for i=1:length(FileInfo)
    if strcmp(FileInfo(i,1),funNames(k,1))
      funNames(k,3) = FileInfo(i,2);
      k = k+1; 
     end
 end

                % create function handles

 fh_array = cellfun(@str2func,{funNames{:,1}},'UniformOutput', false);  

    X = [];     % below, concatenate all output datasets into a single dataset 

   for i=1:size((funNames),1) 
    X=[fh_array{i}(funNames(i,2),(funNames(i,3)))];
    X = X+1;
   end

所以.....为什么这不能给我所有函数的输出数据集?

nFcns = numel(fh_array);    % number of functions to evaluate 

    for i=1:size(nFcns)  
    [allresults] = feval(@(i)funNames(i,2),funNames(i,3));   
    end

非常感谢你的帮助和时间!

0 个答案:

没有答案