找回密码
 注册
关于网站域名变更的通知
查看: 1484|回复: 8
打印 上一主题 下一主题

怎样用MATLAB找出一些最小值,并返回他们在原矩阵中的位置?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-5-7 10:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
怎样用MATLAB找出一些最小值,并返回他们在原矩阵中的位置?
9 W8 g2 U4 |7 K* L3 r+ N

该用户从未签到

推荐
发表于 2020-5-7 13:32 | 只看该作者
>> a=magic(5)
7 l7 U! Y" h; V  F% d: J9 \
" A7 V; F  |) u: X. E. _a =
! C% ?. L! x! r0 g. G; ~. w8 {
9 H9 `" M5 W+ k/ r* f4 T- d; J3 h    17    24     1     8    155 A2 f2 J1 ?, p4 y1 V
    23     5     7    14    16* _) k& q* N" j7 X: m
     4     6    13    20    22
) G- E2 d2 V. ?    10    12    19    21     3
; E6 s1 H3 ?6 h* v/ q& o; K    11    18    25     2     9+ H$ o' @( @- w% D) C

; E3 G3 x$ m: y1 g>> min(min(a))
0 {8 t# U3 b- J. D+ H
- L, g: Z! Z1 A8 Zans =
! o$ B2 N9 Y. m1 O# x+ y0 X. x8 K" f( S& O! x; j, t
     1, |3 G& r- N. \* b6 h
最小值
. W/ E' x5 W) n% v>> [x,y]= find(a==min(min(a)))
4 i5 r+ H7 T+ L; l5 b
  C8 J& o! c3 L) H: e5 K; Cx =
: q6 B5 V. r( b9 {0 @
+ b" x9 K* e6 |     1
2 N2 Z0 ], f2 g6 R" E: R
5 g8 d9 B# d3 {! _. y* F  ~" ]" Z3 X, G' A( n% W4 c7 s
y =" T( O  Q1 |- I6 r# e
& B7 C/ {' `3 X, t( V
     3
! u8 L, }5 S! Q/ y最小值的位置 是1行3列 也就是最小值1的位置& ?+ Y5 m+ ?  k0 {

' D) ~  U: E  I& g>> sort(a(: )), u/ K$ L: D# I# C5 d  Y7 b5 e! \

7 }, {5 c4 W7 ~% }0 n1 A; Xans =
* W/ h( H9 O2 s7 q/ J2 \; ^+ s& y; D/ L5 a1 ~' R
     1- Q  s! V" |5 A# F( j
     2, `$ I3 V7 {( Z& C# A
     3
- V; J- w$ D& i( M5 a% L& @     41 ~  x8 N1 ^9 b/ F8 ]
     5
+ Z6 L3 ^6 e" w' Z" O     6
% u& b( l- M8 i- c6 s8 E) E     74 ?9 a+ Q! E- }4 Y
     8
. F  S+ N1 Z- d' u$ H( U7 q     99 O3 B* g. n; y2 }$ a
    10, `4 q3 ^: h- U% C+ z+ e
    113 Y! I+ |- ^- D9 i7 L* g! Z. Q8 B1 S
    12# l- |1 u. a2 M( [- b6 R2 |6 ~$ I# w
    139 @9 ^5 H5 l9 r  K- I. c$ w+ d
    14. r* ?6 j: s9 W& e' x
    15
9 L7 N2 V- v! N, d; |- R' H    168 c& G5 }1 L, k
    17
, E$ x( W' M: s/ v# f    18" G" n' ~) @" ]( m
    19
/ x4 g9 t1 h  K* X" J    20# K5 V/ O# M  J
    21
- y! N! m3 W8 d2 Z9 G) m    22' V8 t/ d1 v8 I% w8 b; A
    23
( r. ^5 [, B% l2 e; M5 o    24, N& P3 k3 h( J4 X( d$ q  S
    25
; W5 K/ Y( p( k4 ?, K升序排列' u2 ~+ X6 q  r* {7 I8 y% b
>> b(1:5)
& G* |* ~; \  w* \+ F: @% Z
3 M! ]+ K2 {: E% g0 gans =
7 [1 _: A" k- o' D% L( ]5 b0 F( C$ [7 I  M
     15 r" w# q& A8 p/ n1 u
     2
9 R% Y: F# Q+ `1 [0 w# v     3$ D8 W5 ?5 w% l! @4 q
     45 l4 r8 z* ~% ?2 K7 K
     5$ T; L2 j* ]( \: |5 n( x% j* Z
最小的5个值 你可以任意设定一些最小值
( S  D7 c4 \. b% X' O4 ]>> for i=1:5" ]: n( u* Y% v$ E( X' m3 Q) f
[x,y]=find(a==b(i))
# }% O) k& E) d  [6 x8 Xend1 K, l2 r/ `% i* {4 d" Q

0 H( y( G. f: ?x =. h9 _0 K4 V$ M5 H
. A/ Z" k: o. i7 s  k/ V7 M7 a
     1
+ y6 [8 Y6 q. J" }$ Z* j! }& F5 ?8 w/ r9 I( b  W0 B
  N) ]6 E2 i" n) L0 Y9 N' T
y =
  R6 B  A) m1 E; T! t9 v
6 z' [, V' f* Z     3
2 b9 l; [  U3 c9 y( P' k# k0 N- ]8 \& ^  A
2 a4 X- C' q2 {: L/ U. P& t4 @
x =
; n+ }0 l; H" H
& ~* z% g) }: c% ]1 K     5
$ e) V$ Z3 s7 P5 l9 ?, H. V
, o! @  G/ |! T; o5 c: d3 A6 x& ]( v$ L+ @) E0 r: Y; Q4 R
y =5 h" J4 H$ b' i  |

4 D0 k2 J( R9 H     4
5 L8 I* a  f! T) k( H7 `; U' K8 x1 j! K

. F0 Q5 Y8 l4 z/ p' Nx =
* X7 P8 u6 e2 `( d; l9 X8 P8 T4 [8 J) S0 n- H2 c; y
     4" F2 F6 w; r+ z/ E
( y8 |5 A: M: y* p. |
/ @3 b7 D  ]1 I# i7 Y
y =
) d( V0 U! j  v% I5 U$ h# `% J- T! h; ~
     5" k) m, s6 K- \' p4 Y
7 E& _. d. q* s3 j! m# B

1 ], k0 Y6 n7 n- Zx =
% h. X. Z' T3 {/ A- s6 T4 s' K* G
( |! K, V3 u" O( {7 y5 `  E     3( W2 u& c1 A8 a( C) @5 Q- a
6 c$ H3 r+ V* K. Y; z; }+ D% g" C
8 f- i9 e- p2 }! `0 @+ G5 O
y =
3 _3 i  E# e, j
" T6 p1 g4 F1 ]' {! }3 v' F     19 d" Y9 l! k% j) e- I

$ G0 j# k" z/ t+ s3 o# C0 V- @5 X- Z) g" n
x =
3 L& K5 q+ R, J+ ?% F  a
6 m+ Y  v: Z4 J, W# h/ g5 i     2
4 s0 I* j1 k1 M. W) ]" m( z% G) k/ r; T" S, ^

. u/ O# D* g( X& [; yy =
  d5 [# J& a( r$ f9 h
  I" u5 }' F" |% P     2
( B* m% _  i$ U) O+ L5个最小值的位置
7 N! o/ r0 ]1 B5 H! B4 ]4 [

点评

太详细了,厉害啊  详情 回复 发表于 2020-5-8 13:26
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2020-5-7 13:52 | 只看该作者
    楼上正解!2 w* p& f0 Z  Q
    如果不熟悉build-in函数,自己编程也未尝不可。

    该用户从未签到

    4#
    发表于 2020-5-7 13:53 | 只看该作者
    可以Help一下

    该用户从未签到

    5#
    发表于 2020-5-7 17:08 | 只看该作者
    min函数本身即可以返回位置信息,不用这么麻烦的呢。- Y( p) n' p' ?' P
    2 F+ b4 ?4 }$ g
    [minx, ind] = min(x);
    + j; o5 O4 I+ R  w  d' ~: p5 V% g: ~! X1 r
    ind就是找到的最小值的位置。

    该用户从未签到

    6#
    发表于 2020-5-7 17:09 | 只看该作者
    本帖最后由 mengtaiqi 于 2020-5-7 17:11 编辑
    8 B% w4 [  h% `& t5 }( U3 G( k; H" U4 X' ^& o. @
    >> a=magic(8);3 x! @- h% ^8 @" t, f6 F2 z
    tic/ L1 V2 S8 n2 E
    find(max(max(a))==a)
    3 A: @1 u9 a, Q' }, r2 F, h2 I% htoc- B1 O/ q5 A1 R* H

    " z% K& M, ~4 o/ f) c# E$ R, O6 {tic4 V$ X4 G, n4 j, a/ U
    [maxa, ind] = max(a(: )); X/ K7 q$ z! B# X9 D' Y
    toc) t) ^- K0 ~+ n: y! c. Y( G

    6 L: A* o5 z# g0 c6 @, `ans =
    2 D1 S9 Q& ~9 l, s. k" K$ r6 m2 s
    ( |, b# h- C/ c6 d     17 B, U. J5 v1 r& W# M: \. |

    " h& G" y0 c  A1 X: `8 yElapsed time is 0.012841 seconds.
    5 h; k- }0 f" j+ g9 D1 S
    $ R, V  O3 \& b# ^8 ?maxa =9 ]/ k. u# W6 B3 }
    ; W  b/ v( l: i
        64
    + M. k& M- p, n, e! v: M1 `! u( t4 K! f+ w" G
    3 E) _7 k  z# ?+ c5 t* d, e
    ind =; t' e8 X  z7 U- k. _4 M; ]$ }& x

    ' @( }& N4 {. V% U  [     1* @3 S( E. Z0 K6 [5 {, d7 S
    0 S; }9 |' t% N0 W
    Elapsed time is 0.004498 seconds.
    * s" u0 ]- f. E6 F" v$ V
    & I, U8 n+ f$ j9 `8 s区别还是很明显的,max和min函数提供了很好的使用方式为何不使用呢?不需要借助于find函数了。find函数的效率比起来关系表达式也是慢了很多的。

    该用户从未签到

    7#
    发表于 2020-5-8 13:26 | 只看该作者
    CCxiaom 发表于 2020-5-7 13:32
    ; N5 @+ m0 p$ E! c5 k; M>> a=magic(5)! w9 e3 l, d& J

    1 Z3 v' W- `# s6 Za =
    ) u4 O$ e+ Y" o( }0 t
    太详细了,厉害啊# l/ z/ [) ~  c. [

    1 z5 d0 d( V( ~  q, v

    该用户从未签到

    8#
    发表于 2020-5-8 14:19 | 只看该作者
    太详细了,厉害啊

    该用户从未签到

    9#
    发表于 2020-5-9 14:45 | 只看该作者
    大神遗失民间啊
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-22 13:58 , Processed in 0.125000 second(s), 28 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表