Index exceeds the number of array elements: in case of for loop.

1 次查看(过去 30 天)
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 个评论
Maria Imdad
Maria Imdad 2020-12-9
how should i update my loop, so that it permutes all of the 8 values in k4?
David Hill
David Hill 2020-12-9
k4 is all zeros. What do you mean by permuting all 8 values? Provide an example.

请先登录,再进行评论。

回答(1 个)

Timo Dietz
Timo Dietz 2020-12-9
编辑:Timo Dietz 2020-12-9
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 个评论
Timo Dietz
Timo Dietz 2020-12-9
编辑:Timo Dietz 2020-12-9
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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by