Hello, I want to use temporary variable value after parfor loop!, how can this achieved??
9 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
saddam alqasimi
il 29 Apr 2019
Commentato: saddam alqasimi
il 17 Mag 2019
counter =0;
parfor i = 1:1000
max=999;
if max < i
max = i;
disp(max);
assignin('base','counter',max);
end
end
disp(counter);
For example, I want to keep max value but I got zero
2 Commenti
Jan
il 29 Apr 2019
This cannot work: 1. you assign the value to the variable counter in the base-workspace, but where does the posted code occur? Inside a function or a script? 2. The order of iterations is undefined in a parfor loop, but the final value depends on the last processed iteration. As consequence your code is equivalent to: randi([1,1000], 1). What do you want to achieve?
Risposta accettata
Walter Roberson
il 29 Apr 2019
Create cmsc as a struct array of full size. Assign to cmsc(i) as appropriate. Also keep a logical vector used(i) =true where the condition is met. After the parfor cmsc = cmsc(used)
That graph might be more of a problem. Your code structure tends to hint that you are using information from previous iterations in updating the graph.
5 Commenti
Walter Roberson
il 16 Mag 2019
You are calling Assign() and Kill() to update cmcs in ways that are not obvious. As outside observers, we would have to assume that the results are dependent upon the order of iterations.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!