У меня есть функция Matlab, в котором я использую parfor и это выглядит следующим образом:MATLAB ошибка parfor
sbestposition=zeros(8,38);
sbestvalue=zeros(8,1);
matlabpool open 8
parfor i=1:8
[ sbestvalue(i) sbestposition(i,1:i+30)] = pso(lb, ub, s2, i+31, 30,1,2,2);
end
matlabpool close
SizeOf sbestposition
зависит от величины i
и это (1,31)
i=1
, когда и (1,38)
когда i=8
; и я намерен сохранить их значения в одной переменной.
Функция работает, когда она [ sbestvalue(i) sbestposition(i,:)] = pso(lb, ub, s2, i+31, 30,1,2,2);
Но когда я ее использую, функция не будет работать снова из-за ошибки несоответствия размеров.
Вместо этого здесь он дает ошибку
Переменная sbestposition в parfor не могут быть классифицированы
Как это преодолеть?
спасибо.
Я не вижу изменений в измерениях. – Daniel
все переменные, которые будут изменены, должны быть определены внутри цикла. – NKN
За исключением разрезанных переменных: http://www.mathworks.de/de/help/distcomp/advanced-topics.html#bq_tcng-1 – Daniel