Why wont it output index?

1 visualización (últimos 30 días)
Hunter Steele
Hunter Steele el 8 de Oct. de 2019
Editada: Sulaymon Eshkabilov el 9 de Oct. de 2019
function[max,index]=MyMax(x)
max=0;
[n,m]=size(x);
for i=1:m
if max<x(i)
max=x(i);
index=i;
output = [max, index];
end
end
end

Respuesta aceptada

Sulaymon Eshkabilov
Sulaymon Eshkabilov el 9 de Oct. de 2019
Hi,
You have done everything correctly except for a couple of minor flaws. Here is the corrected code:
function output = MyMax(x)
MAX=0; % It is better to avoid MATLAB's function names, such as, max, min, etc to name variables
[n, m]=size(x);
for i=1:m
if MAX<x(i)
MAX=x(i);
index=i;
output = [MAX, index];
end
end
end
This can be tested:
>> x=linspace(-pi,pi);
>> OUT = MyMax(x)
OUT =
1.0e+02 *
0.031415926535898 1.000000000000000
Note that the easy solution of your exercise is this simple command:
[MAX_VAL, INDEX] = max(x)
Good luck.
  1 comentario
Hunter Steele
Hunter Steele el 9 de Oct. de 2019
Thank you! What would i need to change to find minimum?

Iniciar sesión para comentar.

Más respuestas (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov el 9 de Oct. de 2019
Editada: Sulaymon Eshkabilov el 9 de Oct. de 2019
Just use:
[MAX_VAL, INDEX] = min(x) % instead of max()
Good luck.
  1 comentario
Hunter Steele
Hunter Steele el 9 de Oct. de 2019
It seems to not be outputing anything.

Iniciar sesión para comentar.

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by