how can obtain min of matrix
2 ビュー (過去 30 日間)
古いコメントを表示
1 件のコメント
Matz Johansson Bergström
2015 年 1 月 25 日
編集済み: Matz Johansson Bergström
2015 年 1 月 26 日
Please write the question in text and not as a attached image. The description of your question will not be indexed by the Mathworks search engine if you provide an image.
回答 (5 件)
Matt J
2015 年 1 月 26 日
[row,col]=find(matrix==min(nonzeros(matrix)));
2 件のコメント
Matz Johansson Bergström
2015 年 1 月 26 日
Ah nonzeros , didn't even know it existed. This is the shortest and best solution and should be accepted as the answer. Good job Matt.
Matz Johansson Bergström
2015 年 1 月 25 日
編集済み: Matz Johansson Bergström
2015 年 1 月 25 日
This solution is maybe a little ugly, but it works Say that A is the matrix.
tmp = A; %we will destroy elements, so we store A in tmp
tmp(tmp==0) = []; %get rid of 0-elements
val = min(min(tmp)); %find value of the smallest element
[u,v] = find(A==val, 1); %find the position
u and v is the (first) row and column of the index of the smallest element in A. The smallest element could occur several times in the matrix.
0 件のコメント
David Young
2015 年 1 月 25 日
編集済み: David Young
2015 年 1 月 26 日
Another approach:
tmp = A; % avoid destroying A
tmp(tmp == 0) = Inf; % make zero elements bigger than non-zeros
[minVal, minIndex] = min(tmp(:)); % find min value, linear index
[minRow, minCol] = ind2sub(size(A), minIndex); % convert to subscripts
or if you prefer
tmp = A;
tmp(tmp == 0) = Inf; % as above
[colminvals, colminrows] = min(tmp); % find min in each column
[minVal, minCol] = min(colminvals); % find overall min and its column
minRow = colminrows(minCol); % select row of overall min
or my personal preferred method, avoiding copying the matrix and also avoiding a repeat scan with the find operation:
nzpos = A ~= 0;
indexes = 1:numel(A);
indnz = indexes(nzpos);
[minVal, minIndnz] = min(A(nzpos));
[minRow, minCol] = ind2sub(size(A), indnz(minIndnz));
0 件のコメント
sara
2015 年 1 月 26 日
編集済み: sara
2015 年 1 月 26 日
2 件のコメント
Image Analyst
2015 年 1 月 26 日
I deleted my answer. Is there not any "Accept this answer" link for any of the others?
参考
カテゴリ
Help Center および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!