Using a function with a loop for finding the maximum value and its index.
16 views (last 30 days)
Show older comments
Hello!
I am fairly new to MATLAB and am struggling with the topic of loops. A homework of mine is the following:
I need to write a function that finds the max value and its index in a data vector. Also, I am not allowed to use the built-in max function or any other function that relates to the order of magnitudes of elements.
So far I have this function:
function[Max1, MaxI1] = VecMax(Vec1)
Max1 = Vec1(1);
MaxI1 = 1;
while (MaxI1 < length(Vec1))
if(Vec1(MaxI1) > Max1)
Max1=Vec1(MaxI1);
end
MaxI1 = MaxI1 + 1 ;
end
end
Using this example
Vec1=[4 5 9 2 10 -1 4 0 3 12 4];
[Max1,MaxI1] = VecMax(Vec1);
I receive the correct Value for Max1 but still having issues with MaxI1.
Help would be really appreciated
0 Comments
Answers (1)
David Hill
on 13 Oct 2022
Vec1=[4 5 9 2 10 -1 4 0 3 12 4];
[Max1,MaxI1] = VecMax(Vec1)
function[Max1, MaxI1] = VecMax(Vec1)
Max1 = Vec1(1);
MaxI1 = 1;
for k=2:length(Vec1)%use for-loop to cycle through entire array
if Vec1(k) > Vec1(k-1)
Max1=Vec1(k);
MaxI1=k;
end
end
end
4 Comments
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!