how to find the position of in the matrix without using the neither find nor built in functions.
2 ビュー (過去 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!