How can i create an array whose length indirectly depends on parfor loop's index?
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Edric Ellis
2017-11-30
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 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!