Index exceeds the number of array elements (101)

I keep getting this error for a function I wrote. Not quiet sure what it really means since I think the sizes of xe and xb are correct. This function will take some array (charge density) and updates it using the "new" particle positions (xe, xb)
The error message:
Index exceeds the number of array elements (101).
Error in Rho (line 41)
rho(step_1) = rho(step_1) + q*(x(step) - x_p(i))/(dx^2); % rho(j-1)
Error in WeakBeam (line 150)
rhob = Rho(rhob,xb,qb,x,dx);
In weakBeam main code the line before rhob is rhoe and it seems to be working fine although xb and xe are the same sizes. So I am not sure why specifically line 41 is the problem?
I will be attaching the two files (WeakBeam) and function Rho as well

4 Commenti

You are using step_1, step, and i as indexes for arrays rho,x,x_p. Look at the size of these arrays and values of the indexes used. One of the index is having a value larger then the number of elements in the array.
the size of rho is 101 1 and x is 1 101 and x_p is 1 100, and the sizes of the indicies step_1 and step and i are 1 100, 1 100, and 1 100. So I don't see how one of the indicies have a value larger than the elements of the array?
We do not have efield() so we cannot test.
Thanks Walter, I fixed the error, now the code is working.

Accedi per commentare.

Risposte (1)

Use the debugger to find the not matichiung index. Type this in the command window:
dbstop if error
and run the code again. When Matlab stops, check the value of the indices:
% rho(step_1) = rho(step_1) + q*(x(step) - x_p(i))/(dx^2)
size(rho)
step_1
size(x)
step
size(x_p)
i

3 Commenti

I tried doing that, what I am getting
101 1
1 100
1 101
1 100
1 100
I am not sure, is it rho? the first one? cause I don't see how any of this exceeds 101
Ok, I see in the workspace it says i =3, but I have no idea how is that possible? i in the WeakBeam main code goes from 1:numSteps which is 5000 and i in the function goes from 1 to x_p which is 100. Is it being overwritten somehow?
So I was able to fix it by changing rhob in the main code to just rho and same thing with rhoe :/

Accedi per commentare.

Tag

Richiesto:

il 27 Feb 2021

Modificato:

il 27 Feb 2021

Community Treasure Hunt

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

Start Hunting!

Translated by