0

parfor ループの外側 (コードの先頭) で Excel ファイルを作成し、各ループで Excel ファイルを更新し、ループが完了した後に特定の場所に Excel ファイルを保存したいと考えています。しかし、いくつかのエラーが発生しています。次のコマンドで:

   matlabpool('open',2);
   pwd='C:\Users\myPC\Desktop';
   fName = fullfile(pwd, 'file.xls');
   %# create Excel COM Server

   Excel = actxserver('Excel.Application');
   Excel.Visible = true;
   %# create new XLS file
   wb = Excel.Workbooks.Add();
   wb.Sheets.Item(1).Activate();%line 10
   offset = 0;

   C1 = {'NAME', 'Max', 'Min','Average'};
   %# calculate cell range to fit matrix (placed below previous one)
   cellRange = xlcalcrange('A1', offset,0, size(C1,1),size(C1,2));
   offset = offset + size(C1,1);
   %# insert matrix in sheet
   Excel.Range(cellRange).Select();
   Excel.Selection.Value =C1;


   parfor i=1:2
   %some code ,  eg :
   MAX =1
   MIN =2
   AVG=3
   name='jpg'
   row2  = { name MAX MIN AVG };
        %# calculate cell range to fit matrix (placed below previous one)
        cellRange = xlcalcrange('A1', offset,0, size(row2,1),size(row2,2));
        offset = offset + size(row2,1);
        Excel.Range(cellRange).Select();  %line32
        Excel.Selection.Value =row2;

   end

   %# parsave XLS file
   wb.SaveAs(fName,1);
   wb.Close(false);

   %# close Excel
   Excel.Quit();
   Excel.delete();
   matlabpool('close');

上記のコードは、次のエラーを示しています: 1. parfor 内の変数 Excel を分類できません。変数 'Excel' の使用方法、4. 'Excel' の有効なインデックスは PARFOR ループで制限されています。, 5. 10 行目の callee.Error によって呼び出しが拒否されました (wb.Sheets.Item(1).Activate(); )。

Pls. help to use above code so that I can create excel file which updates inside PARFOR loop and EXCEL file get saved outside PARFOR loop
4

1 に答える 1