Borrar filtros
Borrar filtros

Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

The variable in parfor cant classified

2 visualizaciones (últimos 30 días)
freebil
freebil el 4 de Jul. de 2013
Cerrada: MATLAB Answer Bot el 20 de Ag. de 2021
Hello.This is my code:
c_hat = zeros(n,1);
vc = zeros(m,n);
cv = zeros(m,n);
parfor j = 1:n
checks = find(H(:,j));
allIncoming = cv(checks,j);
sumAllIncoming = sum(allIncoming) + LLRs(j);
c_hat(j) = (1 - sign(sumAllIncoming))/2;
toCheck = sumAllIncoming - allIncoming;
vc(checks,j) = toCheck;
end
It is not runing because "The variable vc in a parfor cannot be classified." Without parfor it is running fine. Is it possible to run it with parfor?

Respuestas (1)

Matt J
Matt J el 4 de Jul. de 2013
Editada: Matt J el 4 de Jul. de 2013
There are rules about sliced variables and how you can index them in parfor loops. However, you can get around these rules by re-organizing vc and cv as cell arrays,
c_hat = zeros(n,1);
vc = num2cell(zeros(m,n),1);
cv = vc;
parfor j = 1:n
checks = H(:,j)~=0;
allIncoming = cv{j}(checks);
sumAllIncoming = sum(allIncoming) + LLRs(j);
c_hat(j) = (1 - sign(sumAllIncoming))/2;
toCheck = sumAllIncoming - allIncoming;
vc{j}(checks) = toCheck;
end
vc=[vc{:}]; %convert back to normal array
  7 comentarios
freebil
freebil el 4 de Jul. de 2013
Really thanks for the answers. @Jan Simon line 35 was
vc{j}(checks) = toCheck;
and line 19 was
parfor j = 1:n
@Matt J I changed them but now i have the error
Index exceeds matrix dimensions.
Error in decodeBP (line 52)
allIncoming = tanh(vc{j}(vars)/2);
Matt J
Matt J el 4 de Jul. de 2013
Editada: Matt J el 4 de Jul. de 2013
I take it back. Put this back
vc=[vc{:}];
but add immediately after it
vc=num2cell(vc,2);
Also, please learn to use DBSTOP to trap and investigate common errors like "Index exceeds matrix dimensions." and "Conversion to cell from double is not possible."

La pregunta está cerrada.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by