How can i create an array whose length indirectly depends on parfor loop's index?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Bui Tuan
am 29 Nov. 2017
Kommentiert: Steven Lord
am 30 Nov. 2017
As the title says, i want to ask if there is an elegant way to create an array whose length is indirectly related to the index of a parfor loop in a certain way.
The following code lines give me the error "size input must be integers". I'm sure the error is due to me trying to create the zero array K whose length is N (which, unfortunately, indirectly depends on the corresponding index of the parfor loop).
lambda = [10, 70, 20, 15];
parfor i = 1:length(lambda)
N = lambda(i);
K = zeros([1,N]);
end
0 Kommentare
Akzeptierte Antwort
Edric Ellis
am 30 Nov. 2017
Strange, that code works as written for me, so I'm not sure what's going wrong for you. But even so, I don't think it would do what you wanted - the variable K is a parfor temporary variable. A temporary variable is one which is fully assigned to on each iteration of the loop, and its value is not available after the loop completes.
output = [];
parfor idx = 1:3
newValues = (1:idx) .* (10 .^ (idx-1));
output = [output, newValues];
end
disp(output)
which results in
1 10 20 100 200 300
Reduction variables like output above allow you to accumulate values - often through concatenation (as shown above), or addition.
2 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!