Info

# how to solve index exceeds dimensions

1 view (last 30 days)
Ayesha Punjabi on 6 Jun 2019
Closed: MATLAB Answer Bot on 20 Aug 2021
a is 1*80 bit matrix
b is 1*16 matrix. This remains same. All the 16 binary bits in b remains same
code is 1*16 matrix. Code variable changes and selects diffierent 16 binary bits. Each time it has random, different selection of binary bits.
bits = 5;
gain = 16;
for p = 1:bits
for m = 1:gain
position=m+(p-1)*gain;
a(position) = xor(b(position),code(m));
end
end
I am getting index exceeds dimensions error in a(position) = xor(b(position),code(m)); the idea is to put 1st xor(b and code) in first 16 bits of a, in 2nd run next xor(b and code) in 17-31 columns of a and so on.
Kindly help in solving the error.
KSSV on 7 Jun 2019
In the loop position = 17. And you have b, code as 1x16...so obviously you will get this error.

Debasish Samal on 7 Jun 2019
In the line a(position) = xor(b(position),code(m));
The variable 'position' should not be used for indexing into b as it will exceed the size of b when m>1.
replace 'position' by m. That should solve the issue.
a(position) = xor(b(m),code(m));
Good Luck!