# How to fix index in a parfoor loop?

1 Ansicht (letzte 30 Tage)
Andreu Angles Castillo am 13 Sep. 2018
I have the following code and get indexing error
parfor dt=0:round(tmax/step)
fprintf(1,'\b\b\b\b\b%05.2f',dt);
for dm=0:dt
A(dm+1,dt+1) = f(dm,dt);
end
end
It does not make sense, for me, because each loop of the first for is stand alone in the variable dt. The size of A has been prefixed.
The error messages on the script are:
-The PARFOOR loop cannot run due to the way varaiable 'A' is used. (On line 1)
-Valid indices for 'A' are resticted in PARFOR loops. (On line 4)
Error when run:
Error: The variable A in a parfor cannot be classified. See Parallel for Loops in MATLAB, "Overview".
##### 4 Kommentare3 ältere Kommentare anzeigen3 ältere Kommentare ausblenden
Andreu Angles Castillo am 14 Sep. 2018
Bearbeitet: Andreu Angles Castillo am 14 Sep. 2018

Melden Sie sich an, um zu kommentieren.

### Akzeptierte Antwort

Titus Edelhofer am 14 Sep. 2018
Hi Andreu,
agreed, it looks as if this case could be handled. But it is fairly easy to work around this by separating the inner loop from the parfor loop:
n = round(tmax/step) + 1;
parfor dt=0:round(tmax/step)
fprintf(1,'\b\b\b\b\b%05.2f',dt);
col = zeros(n, 1);
for dm=0:dt
col(dm+1) = f(dm, dt);
end
A(:, dt+1) = col;
end
Titus
##### 1 KommentarKeine anzeigenKeine ausblenden
Andreu Angles Castillo am 18 Sep. 2018
Thank you very much, it worked for me.

Melden Sie sich an, um zu kommentieren.

### Kategorien

Find more on Loops and Conditional Statements in Help Center and File Exchange

R2017b

### Community Treasure Hunt

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

Start Hunting!

Translated by