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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
怎样用MATLAB找出一些最小值,并返回他们在原矩阵中的位置?8 n: k3 H1 L1 t

该用户从未签到

推荐
发表于 2020-5-7 13:32 | 只看该作者
>> a=magic(5)
/ K, A# M4 b; s9 t. f) {5 f8 Q. b6 k0 v# V! X: Q% p6 K
a =0 C0 q" Q! D" R8 a) C
( S$ O8 f- v- m2 d/ c
    17    24     1     8    15' b( f' Q, I+ C* w+ `& h
    23     5     7    14    162 A  Z' P6 e0 ^9 F1 T2 V/ b
     4     6    13    20    22
7 T9 D3 E% a9 @3 v: |    10    12    19    21     3
! q/ k, P1 d0 i" N. x+ M    11    18    25     2     9; h! M: T; l5 U, n

5 v( L5 v) e1 D>> min(min(a))% W9 _, q3 W. z3 ?( N8 T

1 P+ {' o/ @" _8 R% Wans =* h1 a; y. q- m

3 C+ F2 L1 u. z, w! @1 n     1
+ O& c5 U. T2 M% l最小值
' T) \! p; r+ O7 t. Q0 |  ^>> [x,y]= find(a==min(min(a)))4 @7 w; j2 y0 P2 J" F3 Q: c3 t
! L; b, i" L: G" L9 r. C0 J
x =
# R/ |( p) Q" z2 ~6 {
* X1 k& j1 B3 C& n% f% c7 u     1
7 j6 @4 D# V3 L# ?; p- g5 @0 W6 O% z3 {6 M, m% I7 N, l' r

2 J% s- R  y2 X# N" F0 vy =
; P$ ]9 Q$ X, Q0 Y. ?6 ^* v: p4 K1 S1 w! q. D  P) P
     3+ U; d5 _8 P( r
最小值的位置 是1行3列 也就是最小值1的位置. o! _$ \# I9 R
& X& y8 j' }4 j# \
>> sort(a(: ))1 p/ W2 l1 }9 W$ _
& m- @2 h' ^# F8 K
ans =
5 w0 K: h$ _1 o9 B) v: [* j3 t3 r3 L/ P1 q3 S2 ^
     13 [( @2 X: V  X6 j
     2
3 c0 m8 B8 d8 G! n+ S; s     3
, Y5 A" F2 u! @5 ?     4
1 P& v0 _* _# k% I2 }     5
& i/ e" S" O) K% x3 z6 Q. E     6+ Y* L2 e6 e: Z( C  i* v
     7
7 @) t* _. g4 Y5 e# [     8. P7 e7 ]( i  O3 X  X
     9" s8 T4 @3 I. t
    10
) _' w1 D8 C) K1 v! u( D8 v5 m5 o# H# }    11
) O% w, E- k! \2 p" P    12
  V' d% Y3 T+ @, Q    13
1 L& v7 `" z) O3 Z* P! P3 n, j" b! U    14
& ~  G9 v) h  u) x- @# t: g    15
& v/ v% z! [- B2 g- e$ o8 y    16% }  Z) [* ?8 I# R
    17
( A3 V/ j: M! Q# ?. j7 w    18' d3 N: q7 s$ {& v) d3 N6 t
    19. A( x  j( x% G7 h
    20! l. s0 U8 _7 L8 E! Y% B# @
    21
$ H% Z, o/ J! ?8 u' m    22
2 ~. z3 D1 i0 }1 x1 d4 J; `    23& A4 H3 |0 t0 |$ N
    24( `, c  ~$ i! Y* r. N; z
    25
' s" l1 i' O* y# T6 ]升序排列
2 `) c# s# I$ v% V4 R: Z, }/ B>> b(1:5)2 o' o1 ^2 E' R* b
! O, f# Z9 M5 _
ans =
; j$ i3 T+ b# j$ y; z  e8 G; O
: j+ J# Z$ q2 _& `/ z1 C  K     12 P- s& d! G; z
     26 G  W8 z6 B+ W! s) ~
     3: O2 O/ @7 ^; y& w3 B6 k+ i
     43 K9 ?6 i. }( X; D8 }# [2 @5 y
     5; A/ d  j' H. [8 z
最小的5个值 你可以任意设定一些最小值6 F* y; E, X* s% i! R% A% _$ n- D
>> for i=1:5
! g2 x; s  i% K) y) H[x,y]=find(a==b(i))& b- k  M9 g: `0 S6 _. C
end
5 X: f3 Y: L% _. k$ i! M$ c- {' u0 @
x =8 D8 @$ h: p0 ?! T
1 A7 v7 b& J% F. M* Q7 B1 y
     1
. ~+ G# H/ `( M5 ^) f# f% [  Q1 b! d9 l- k5 F8 P

/ |# N% o0 P# Y! p2 I4 G& C1 ty =& \4 P4 D+ h( \1 b) I
' p* |2 _& t* K" Q9 t) I1 W
     3
# c, m) n3 M) U/ ?' ?# ?- f: f; D5 x5 c, g! `: V/ I
& f: a# D) @- s0 \8 W- j
x =
3 k" I" y$ f- a
, t2 j8 {+ h6 F: U     5! X2 Q( @6 D* ~1 L
7 k+ m  ?! ]( g
' S$ C$ s- O, l
y =" I0 X0 S- s7 N' O7 o
2 R. ]* W- u+ v: G5 H  l
     4" M, [7 p0 D* v1 e; b% J

; C* |0 I- ^5 k1 O. E0 j
' _3 A2 ], N& G2 v; N  zx =
8 p. S5 d1 r0 \$ r! D2 x3 `3 U4 O# ]# |
     4' n! ^7 Q2 c; q
5 Z  Z! Z& _: u4 @& r9 I9 s

: _2 i; S) F6 m/ r1 B/ hy =
& c/ o. M/ n: w
0 b& s+ y' ~0 e- J     5
/ U# b: \- ~2 e; }
, z8 [# X0 M& ?* }- \7 b& {; [5 h7 |/ U: N. `3 f* ~  w) X
x =6 w% i# C, v  h- k+ h1 m

/ f( l4 K1 m0 a% T' W     3
  L  F" F9 [$ i% I# c5 G) p4 W1 R0 {' Y3 h2 N+ w, y

7 v$ [- z: z4 N& Ay =! v- h1 O! {8 K* l
. l  T) O) |+ k4 v% V6 b3 s
     1# K& i+ J6 T; |+ W9 l' q
2 f" G) Y6 J+ z5 v8 ?
7 ~4 K- ~( |. J: }3 x3 M# \8 j" o
x =4 }9 x, M- C% c3 f* P
% L, H8 \6 b4 l. ?
     25 z  a) V5 Y! r' Y0 P) @$ R! {% A* |

8 O5 U: C  A4 ^
; U8 t" `( I) o+ w7 uy =4 |. K8 w2 o, q6 z0 y+ K
/ Z8 l' u6 R: J4 l
     28 c7 X  W- B, L4 z8 U
5个最小值的位置
7 l) l. a9 R  H2 W3 e+ k

点评

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

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

    [LV.1]初来乍到

    3#
    发表于 2020-5-7 13:52 | 只看该作者
    楼上正解!
    7 n" u, `' l% [; y7 D! q如果不熟悉build-in函数,自己编程也未尝不可。

    该用户从未签到

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

    该用户从未签到

    5#
    发表于 2020-5-7 17:08 | 只看该作者
    min函数本身即可以返回位置信息,不用这么麻烦的呢。
    " {1 t& M( {$ x6 h  U: [% b
    # P5 h0 p/ e6 m% B[minx, ind] = min(x);
    $ T& I( j5 T5 N) ?; I" g) R5 Q& S6 t8 L4 F
    ind就是找到的最小值的位置。

    该用户从未签到

    6#
    发表于 2020-5-7 17:09 | 只看该作者
    本帖最后由 mengtaiqi 于 2020-5-7 17:11 编辑 / ~2 K1 ]. v" l( e/ x6 a

    " H; w) f! T# B7 U>> a=magic(8);
    5 E9 Z" J2 E" Etic
    4 _# U2 P- u' V  t8 i% Ifind(max(max(a))==a)
    4 k1 n* U/ k: qtoc8 v( _" Z+ a% r! R- |' J/ c* o: P+ T

      a. ~" K! L4 b1 _- M0 mtic) z) @/ m" P8 `- t; B: m
    [maxa, ind] = max(a(: ))( M( i' P. y7 S. c  m- w  Y
    toc
    4 o5 H/ l4 l' X& y) I' W% S
    7 b3 a' |  }1 T# bans =$ u$ B1 \: X9 ~( z

    ) C8 d5 z2 m9 A) ^/ y. Z     1, R% q7 D; b" l0 W7 m

    " w8 M* K* c: X* o* tElapsed time is 0.012841 seconds.( Q* }1 q. b/ r# z

    $ o- H; q8 M/ c$ K8 W: Rmaxa =1 c4 m* \; d. r1 L- F0 z

    + N! i6 X+ j9 u& q    64& s( u% S" W) Y$ D  J8 Q8 h
      q% o, I4 K  b( f5 e: E

    & y. q* p2 o9 U5 S5 k' D  [+ P. F2 {ind =
    # M' \6 J2 F# c: f% g  p7 x
    5 F, k2 |' z1 ^! i2 {3 R! d     10 R. u* q) |' ?, G$ G4 v
    2 A' L- n5 e9 r$ s: @4 f4 P8 D
    Elapsed time is 0.004498 seconds.
    ! B+ n: r# y6 t) ~, r9 u) X- v5 y8 a6 N0 N
    区别还是很明显的,max和min函数提供了很好的使用方式为何不使用呢?不需要借助于find函数了。find函数的效率比起来关系表达式也是慢了很多的。

    该用户从未签到

    7#
    发表于 2020-5-8 13:26 | 只看该作者
    CCxiaom 发表于 2020-5-7 13:32
    # K* _, I9 A+ R) L$ A- o5 z, z# d( |9 E; ^>> a=magic(5), `' f5 x7 F4 S$ u* i* ~
    ; |# S/ {. j, I/ f+ T- b3 w% W1 M/ I
    a =

    & h3 {2 G' K* D8 {% K2 o" Q太详细了,厉害啊: d) f* ?6 J+ D# c
    2 E' ^9 V% k% D% v6 l& V/ t( \

    该用户从未签到

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

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-24 07:14 , Processed in 0.187500 second(s), 26 queries , Gzip On.

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

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

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