how to find the position of in the matrix without using the neither find nor built in functions.

1 visualizzazione (ultimi 30 giorni)
i have a matrix with the size of m x n . I found the min and max with the multiple for loops in the matrix without using any built in function . But i cannot find the position of them. Can you help me to find the position without using any built in function
  7 Commenti

Accedi per commentare.

Risposta accettata

James Tursa
James Tursa il 16 Apr 2020
Just add variables to keep track of the locations. E.g.,
if M(a,b) < min
min = M(a,b);
mina = a;
minb = b;
end
if M(a,b) > max
max = M(a,b);
maxa = a;
maxb = b;
end
P.S. You should use variable names other than min and max, since those are existing MATLAB fuction names.
  3 Commenti
James Tursa
James Tursa il 16 Apr 2020
Modificato: James Tursa il 16 Apr 2020
You also need to change:
  • Initial max value from 0 to -inf
  • The < test to <=
  • The > test to >=
The last two changes are just to ensure that you always get the indexing results.
Walter Roberson
Walter Roberson il 16 Apr 2020
Unfortunately this code uses the built-in functions lt() and gt() and subsref()
In MATLAB, it is not possible to index into an array without using the built-in function subsref(), and that means that the overall task of finding the minimum and maximum of the array cannot be done without using any built-in functions.

Accedi per commentare.

Più risposte (1)

David Goodmanson
David Goodmanson il 16 Apr 2020
Hi Umut,
all you need do is use a couple of 1x2 arrays to store a and and b when you find them
When inside the for loops when you find a new max,
maxM = M(a,b);
indmax = [a b];
and similarly for min. I changed max to maxM because max is already a builit-in Matlab function and you will cause yourself problems if you use it as a variable name. Same for min.

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by