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

1 Ansicht (letzte 30 Tage)
Maria Imdad
Maria Imdad am 9 Dez. 2020
Kommentiert: David Hill am 9 Dez. 2020
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 Kommentare
Maria Imdad
Maria Imdad am 9 Dez. 2020
how should i update my loop, so that it permutes all of the 8 values in k4?
David Hill
David Hill am 9 Dez. 2020
k4 is all zeros. What do you mean by permuting all 8 values? Provide an example.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Timo Dietz
Timo Dietz am 9 Dez. 2020
Bearbeitet: Timo Dietz am 9 Dez. 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 Kommentare
Daniel Pollard
Daniel Pollard am 9 Dez. 2020
What do you mean by permute in this context?
Timo Dietz
Timo Dietz am 9 Dez. 2020
Bearbeitet: Timo Dietz am 9 Dez. 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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by