How to fix index in a parfoor loop?

9 ビュー (過去 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 ExchangeLoops and Conditional Statements についてさらに検索

製品


リリース

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by