# index error,exceeding array dimensions.

5 views (last 30 days)
savino cataleta on 27 Jan 2023
Commented: savino cataleta on 27 Jan 2023
Hello Everyone,
I'm here to ask if there is anyone who can help me see where i am doing wrong because i really cannot see what i keep writing that is not accepted by the program
it gives out an error of exceeding index but i see no mistake in the input of the functions and the limits that the index has to run (from 1 until dim i.e)
what is confusing is the fact that it sometimes gives no mistake but lately the same writings have always gotten denied
function [Vet_ord] = ordina(Vet,dim)
for i=1:dim
k=i;
j=i+1;
while j<dim
if Vet(k)>Vet(j)
k=j;
end
j=j+1;
end
if i~=k
temp=Vet(i);
Vet(i)=Vet(k);
Vet(k)=temp;
end
Vet_ord=vet;
end
end
the warning is : index exceeds the number of array elements.
Index must not exceed 1.
Error in ordina (line 6)
if Vet(k)>Vet(j)
thanks everyone in advance for the help.
Dyuman Joshi on 27 Jan 2023
@savino cataleta is the value of Dim calculated from Vet or manually inputted?
If the former, why use it as an input when you can obtain the value in the code directly using inbuilt functions.
If the latter, you have to check that Dim and any other variables used in reference to Dim do not exceed the size of Vet.

Sulaymon Eshkabilov on 27 Jan 2023
Here is the corrected code:
Vet = randi([-9,9], 1, 7);
dim = numel(Vet)+1;
V = ordina(Vet,dim)
V = 1×7
-9 -6 -5 1 5 6 9
function Vet_ord = ordina(Vet,dim)
for i=1:dim-1 % Excess the dimension of Vet
k=i;
j=i+1;
while j<dim-1 % Excess the dimension of Vet
if Vet(k)>Vet(j)
k=j;
end
j=j+1;
end
if i~=k
temp=Vet(i);
Vet(i)=Vet(k);
Vet(k)=temp;
end
Vet_ord=Vet; % The variable name has to be Vet not vet
end
end
##### 1 CommentShowHide None
savino cataleta on 27 Jan 2023
hello, i've just tried this out. it keeps telling me it goes over the dimension of the array but it is not true.
i can not understand where it goes wrong.