How to fix index in a parfoor loop?

3 ビュー (過去 30 日間)
Andreu Angles Castillo
Andreu Angles Castillo 2018 年 9 月 13 日
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 件のコメント
Stephen23
Stephen23 2018 年 9 月 13 日

@Andreu Angles Castillo: please give the complete error message. This means all of the red text.

Andreu Angles Castillo
Andreu Angles Castillo 2018 年 9 月 14 日
編集済み: Andreu Angles Castillo 2018 年 9 月 14 日
errors uploaded

サインインしてコメントする。

採用された回答

Titus Edelhofer
Titus Edelhofer 2018 年 9 月 14 日
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 件のコメント
Andreu Angles Castillo
Andreu Angles Castillo 2018 年 9 月 18 日
Thank you very much, it worked for me.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeParallel for-Loops (parfor) についてさらに検索

製品


リリース

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by