%testing the elimation of the elements outside the boundary%
np=22;
L=10;
x=linspace(0,L,np);
%position(:,1)=x;
for i=1:np
if x(i) > 5
x(i) = [ ];
end
end
hello, i want to eliminate the value of x greater than 5 , i s not able yo do so. it says index array exceeds array bounds

 Accepted Answer

KALYAN ACHARJYA
KALYAN ACHARJYA on 1 Jul 2019
Edited: KALYAN ACHARJYA on 1 Jul 2019
#No Need of loop, efficient code.
np=22;
L=10;
x=linspace(0,L,np);
idx=find(x>5);
x(idx)=[]
If loop is needed, you can understand the issue from the comment section.

3 Comments

using for loop you can undestand the issue from the following example
np=22;
L=10;
x=linspace(0,L,np)
for i=1:length(x)
if x(i)>5
x(i)=NaN
end
end
As @Star explained if you delete the element, the array length reduce, therefore it reflects the error
index array exceeds array bounds
tnx you sir.
KALYAN ACHARJYA
KALYAN ACHARJYA on 1 Jul 2019
Edited: KALYAN ACHARJYA on 1 Jul 2019
You always welcome ..!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!