how to find the position of in the matrix without using the neither find nor built in functions.
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
James Tursa
2020-4-16
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 个评论
James Tursa
2020-4-16
编辑:James Tursa
2020-4-16
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
2020-4-16
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.
更多回答(1 个)
David Goodmanson
2020-4-16
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!