Index exceeds the number of array elements: in case of for loop.
2 views (last 30 days)
Show older comments
I have this code where simple permutation will be performed , but i am getting an error message as "Index exceeds the number of array elements (8)."
k4='00000000000000000000000000000000';
k4=reshape(k4,8,[]);
k4=bin2dec(k4);
Perm=[0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 ...
1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 ...
2 6 10 14 18 22 26 30 34 38 42 46 50 54 58 62 ...
3 7 11 15 19 23 27 31 35 39 43 47 51 55 59 63];
for i = 1:8
j4(i)=k4(Perm(i)+1);
end
3 Comments
David Hill
on 9 Dec 2020
k4 is all zeros. What do you mean by permuting all 8 values? Provide an example.
Answers (1)
Timo Dietz
on 9 Dec 2020
Edited: Timo Dietz
on 9 Dec 2020
k4 has 8 members.
But the third member of Perm is 8. So plus one leads to 9 which is more than k4 contains k4(Perm(i)+1) = k4(9);
To me it's not clear what you try to do. Could you please give an example of the expected result?
Btw., are you aware of the built-in "permute" function?
3 Comments
Timo Dietz
on 9 Dec 2020
Edited: Timo Dietz
on 9 Dec 2020
If you just want to rearrange k4, as I wrote, "permute" is the function you need.
But certainly you can't use a higher index in your Perm array than present in k4.
See Also
Categories
Find more on Elementary Math in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!