繁体   English   中英

Matlab 矩阵最小值

[英]Matlab matrix minimum value

我有一个矩阵数字,其中包含

0.2728    0.2304    0.2008    0.1900    0.2008    0.2304    0.2728
0.2304    0.1786    0.1391    0.1233    0.1391    0.1786    0.2304
0.2008    0.1391    0.0843    0.0567    0.0843    0.1391    0.2008
0.1900    0.1233    0.0567    0.0100    0.0567    0.1233    0.1900
0.2008    0.1391    0.0843    0.0567    0.0843    0.1391    0.2008
0.2304    0.1786    0.1391    0.1233    0.1391    0.1786    0.2304
0.2728    0.2304    0.2008    0.1900    0.2008    0.2304    0.2728

我试图找到最小值(或如果有相等的分钟值)。 我努力了

[min_val,idx]=min(数字);

[行,列]=ind2sub(大小(数字),idx);

我得到的第 4 行是正确的,但第 1 列显然不是最小值,最小值在中间。 当我打印 min(number) 时,我给出了第 4 行的全部内容,所以我也尝试了

[min_val,idx]=min(min(number));

[行,列]=ind2sub(大小(数字),idx);

但我给出了相同的结果。 我不太确定这里发生了什么。 任何帮助,将不胜感激!

看起来您可以使用minind2sub来实现您预期的 output:

matlab:1> number = [0.2728 0.2304 0.2008 0.1900 0.2008 0.2304 0.2728; 0.2304 0.1786 0.1391 0.1233 0.1391 0.1786 0.2304; 0.2008 0.1391 0.0843 0.0567 0.0843 0.1391 0.2008; 0.1900 0.1233 0.0567 0.0100 0.0567 0.1233 0.1900; 0.2008 0.1391 0.0843 0.0567 0.0843 0.1391 0.2008; 0.2304 0.1786 0.1391 0.1233 0.1391 0.1786 0.2304; 0.2728 0.2304 0.2008 0.1900 0.2008 0.2304 0.2728]
number =

   0.272800   0.230400   0.200800   0.190000   0.200800   0.230400   0.272800
   0.230400   0.178600   0.139100   0.123300   0.139100   0.178600   0.230400
   0.200800   0.139100   0.084300   0.056700   0.084300   0.139100   0.200800
   0.190000   0.123300   0.056700   0.010000   0.056700   0.123300   0.190000
   0.200800   0.139100   0.084300   0.056700   0.084300   0.139100   0.200800
   0.230400   0.178600   0.139100   0.123300   0.139100   0.178600   0.230400
   0.272800   0.230400   0.200800   0.190000   0.200800   0.230400   0.272800

matlab:2> [min_val, idx] = min(number(:))
min_val = 0.010000
idx = 25
matlab:3> [row, col] = ind2sub(size(number), idx)
row = 4
col = 4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM