Я хочу создать файл excel вне цикла parfor (в начале кода), затем обновить файл excel с каждым циклом и, наконец, сохранить файл excel в определенное место после цикла , Но я получаю некоторые ошибки. с помощью следующей команды:Создание файла EXCEL с помощью команды parfor в MATLAB для параллельной обработки
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. Переменная Excel в parfor не могут быть классифицированы, 2. Цикл PARFOR не может запустить использоваться в связи с тем, как переменной «смещения» используется ., 3. Петля PARFOR не может использоваться из-за использования переменной «Excel». 4. Допустимые индексы для «Excel» ограничены в цикле PARFOR., 5. Звонок был отклонен с помощью callee.Error в строка 10 (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
Спасибо, я использовал первый вариант с «parfor», и он работает. – Dev
Отлично, рад, что я мог бы помочь! – Shaked