MATLAB Answers

valid indices for 'output' are restricted in parfor loop

31 views (last 30 days)
soepblik
soepblik on 3 Mar 2021
Edited: soepblik on 3 Mar 2021
Hi,
i have the following code:
for j= 1:100
SNR = list(j);
parfor i = 1:1000
tot = (j-1)*1000+i;
totallist(tot,1) = SNR;
output(tot,1) = awgn(input(tot,1),SNR);
end
end
tot is just the total counter of the full loop
so the full loop contains 100*1000 values.
But why is the output(tot,1) and totallist(tot,1) forbidden?
How can i do it on another way?

Accepted Answer

Walter Roberson
Walter Roberson on 3 Mar 2021
for j= 1:100
SNR = list(j);
base = (j-1)*1000;
parfor i = 1:1000
totallist(base+i,1) = SNR;
output(base+i,1) = awgn(input(base+i,1),SNR);
end
end
"Form of Indexing. Within the first-level of indexing for a sliced variable, exactly one indexing expression is of the form i, i+k, i-k, or k+i. The index i is the loop variable and k is a scalar integer constant or a simple (non-indexed) broadcast variable. Every other indexing expression is a positive integer constant, a simple (non-indexed) broadcast variable, a nested for-loop index variable, colon, or end."
  1 Comment
soepblik
soepblik on 3 Mar 2021
ahh thanks for the clear explanation! It is working now

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!