フィルターのクリア

Index exceeds the number of array elements (101)

3 ビュー (過去 30 日間)
Jamie Al
Jamie Al 2021 年 2 月 27 日
編集済み: Jamie Al 2021 年 2 月 27 日
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 件のコメント
Walter Roberson
Walter Roberson 2021 年 2 月 27 日
We do not have efield() so we cannot test.
Jamie Al
Jamie Al 2021 年 2 月 27 日
Thanks Walter, I fixed the error, now the code is working.

サインインしてコメントする。

回答 (1 件)

Jan
Jan 2021 年 2 月 27 日
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 件のコメント
Jamie Al
Jamie Al 2021 年 2 月 27 日
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?
Jamie Al
Jamie Al 2021 年 2 月 27 日
So I was able to fix it by changing rhob in the main code to just rho and same thing with rhoe :/

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by