2016-12-16 8 views
0

У меня есть данные, которые я хочу проанализировать, используя функции, которые я определил в классах. В каждом наборе данных используются одни и те же классы. Поскольку у меня есть самостоятельные задачи, я хотел бы использовать parfor, чтобы сделать это быстрее. К сожалению, я не вижу ускорения при использовании parfor. Поскольку код очень большой, я не могу просто предоставить минимальный рабочий пример. Я провожу уже несколько часов, пытаясь это сделать.Matlab: классы и парные пары

data(k) является структурой, содержащей двухместный, клетку и полукокс

N = 100; 
par_WT = linspace(0,1,10); 
par_TT = 2; 
for j=1:length(par_WT) 
    my_WT = par_WT(j); 
    my_TT = 2; 
     parfor k = 1:N 
      myData = data(k); 
      myOutput(k) = myData.myAlgo(my_TT, my_WT); 
     end  
end 

%% Work with myOutput... 

myAlgo вызовов функций, которые требуют других классов функций. Если я использую parfor вместо for, там нет разницы в скорости. Но почему? Все это самостоятельные задачи.

Буду очень признателен, если кто-то может дать мне подсказку, как я могу это сделать, или для любого другого предложения.

ответ

0

Функция «профиль» в Matlab дает вам представление о том, сколько времени потребляют ваши (вспомогательные) функции.

Сложно предположить, что данные (k) утверждаются как структура, а данные (k) .myAlgo (argin) выглядит как метод в классе.

+0

Может быть, 'data (k)' не имеет типа struct. Я не очень хорошо знаком с Matlab. Но 'data' содержит двойники, ячейки и char. – Samuel

+0

Вы могли бы поделиться с нами «зрителем профиля»? – Diiiiii