TA的每日心情 | 慵懒 2017-7-12 08:29 |
---|
签到天数: 7 天 连续签到: 2 天 [LV.3]偶尔看看II 累计签到:7 天 连续签到:2 天
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
==================================================================================== I7 C' o( R! {
MATLAB求矩阵某一列的最大值及所在位置 下面是一个关于求矩阵某一列的最大值,并确定其所在矩阵的具体位置,即行列号,但修改多次发现它运行得到的列号都是1,而不是我想要的位置,为什么?
6 b6 |% O/ ?: b C$ |function max_min
/ f3 m3 K2 s9 h! M5 O4 [1 Q: F$ dclear;clc;
: U; w8 B* T7 r: y! {& _data=load('G:\自主学习\任务\log data.txt'); %将记事本文件导入( B, u* y- ]0 z; b7 ^3 Y
GR=data(:,2); %GR——自然伽玛
" k4 N$ P) z$ {: aA=size(data)" q r+ X0 t/ m
[MaxGR,m]=max(GR(:))8 F4 a0 @& w& t) f, a B7 T
[row,col]=ind2sub(A,m)7 X; y. `: } Y0 S9 d
end
! z d: n) K& X: ^! j8 H) @运行结果:9 W6 y2 w/ e; }, Q! U" ?
A =3 L+ P7 Z1 \, k, [. P
2259 4
9 x, r$ ^7 g) r" ^4 M5 `$ `0 r6 G# X" Q. Q# \6 C R
MaxGR =
+ i3 I* L% Y. G' I- e% b6 L( _0 W3 K1 v 216.9566; Z, p- F$ g: W# ]) Y c) |
" q1 U! S+ i( O' g6 }m =0 f9 `$ J3 v. D1 X8 J
2223/ }1 m* X L. | R M
( _9 s- k& B9 y3 |, U! _- K X
row =
2 K* ~4 [. r3 I 2223
- h: ?/ ?5 e$ D& u
5 q! g6 @8 g- f! B$ g! T0 l, }% a' Ucol =6 {8 y* Q8 g9 c0 F, i0 }( R8 } q8 _
1 此结果除了最后的col显示有问题,其余结果都是对的,我不知道为什么?对此问题该如何解决呢?这个问题归结起来就是求一个矩阵某一列的最大值,并确定该最大值在该矩阵中的具体位置,请各位指点一下......
6 ?( j- o. B4 s9 q) g7 t3 E在自己摸索的过程中,也搜集和实践了几种关于如何求矩阵最大值的方法,拿出来跟大家共享:& @. B' s1 N' f$ v
第一种:
7 j" o7 P- ~! G) X, I1 hclear;clc;9 j# M9 f4 `5 b' f5 k
A=[0 17 50;-12 40 3;5 -10 2;30 4 3]+ l; [& ?! r4 L6 p5 W
[C,I]=max(A(:))
/ ~& q* `$ H$ l, D[m,n]=ind2sub(size(A),I)
, [9 K% `0 s( o( w' T* e! c运行结果:
( ~6 e- W, l: a. I$ HA =
6 o! l# z- W9 U' y6 C 0 17 50
$ Y# {: V7 j) z( s -12 40 3
4 v* p1 w* v0 P8 r7 h" ?) ^3 c% P) q 5 -10 2
, v; n& i1 G/ I 30 4 3
: ?3 \; ~2 H& _, N+ S) P: ~# q& V9 t( |0 q% x: q
C =7 I3 K; D( h& L3 P; O2 E" R( N
50
8 k6 q' R) ~, C0 [) T" i! [4 m, P
I =2 p2 Y* i9 I& ^5 H# c
98 k% X2 M1 ^; ?! O
- c/ X Z* I& N: e# b$ X3 H
m =
7 g) }: L' C1 K3 s" m 1: h. y1 v' r+ @9 L: @
+ N6 ` T9 M9 t4 r# wn =+ @2 i2 u) i' A" c6 E6 i5 s
3
6 t9 H$ H8 M) j2 P4 b$ Z第二种:
2 N7 j v, T% r$ |2 g+ v0 ^clear;clc;1 X+ y2 R# r8 G& V( |
A=[0 17 50;-12 40 3;5 -10 2;30 4 3]0 E% k4 o, M7 M
[M,I]=max(A)/ U% T6 R3 }+ f( h% {& f* m
[N,J]=max(M)6 `( i- v8 t3 q G
[I(J),J]
/ J( \) }, s2 ~* P6 r运行结果:3 k# p6 B3 `8 f1 H
A =
9 b: x) X. Q* ]& C! {* |5 v 0 17 504 U# Z/ v$ \# d2 h
-12 40 3- O1 E1 H$ O7 @
5 -10 23 O" m! H. P" G, m
30 4 3, |4 f3 K, ?1 {! g
( a, `4 f! E4 V* E/ oM =7 i6 ^/ V' G0 i) B% g, z' z
30 40 50 w" P2 D, F4 {; D7 z$ c
# C3 _% e. m& n
I =
3 d; \% u+ O& o" | C 4 2 1
6 h, u% Q, R+ x6 _
* U( }& z2 x* W0 r" h0 y+ dN =
$ y7 X* | q) H( l) I! W. p 50+ C' D$ d. B+ Y$ s: p4 d. F" r [
) t0 v b6 v7 W& C
J =" b# p. C0 _7 n o# }* k
3, I/ {) R* D5 c/ `/ @' Q
' k) l7 [; Q( ]3 H
ans =
& I3 X( ]2 V- } 1 3
- F" u% ^8 e0 p T# A* ?6 a第三种:3 N/ T5 s7 \7 [" l) \! D# y% q
clear;clc;
\/ J, J R- XA=[0 17 50;-12 40 3;5 -10 2;30 4 3]% E0 W$ \/ ~" G. N/ X& u
N=max(max(A)) %或者N=max(A(:))& V1 t: N; E8 t
[r,c]=find(N==A)& \$ o2 v9 G' t3 v3 o) Q: X
运行结果:
. l* c# u% C7 v+ n p+ n5 G3 q$ V; ^A =; {6 T# r7 A0 [6 t! y
0 17 504 Q% V9 \9 g- B) b/ W7 q
-12 40 3( S% y- m$ w6 f
5 -10 2
: A$ b5 R1 M- g 30 4 3
9 k9 `: J% ?/ _9 \9 o7 C3 g9 b( x- Q' [4 a8 Q$ ^0 n6 y& g
N =; T9 ~% f# q! n) t2 I
50% l7 u% r W* @6 Y1 P
) k/ R3 v- B! V* ?8 lr =
& k1 y( Y7 O1 O) J, u 1, [8 x! l- o" ` r9 q' `* e
! X1 _: J; l* r7 P6 z, o1 Zc =
3 |: B8 A6 A1 B8 T) M3 H 3) o9 p8 \7 X( i+ G5 X9 F9 Q, }
至于其它方法正在测试中,待续.......
5 j2 A _+ t+ l, H=============================================================================================== |
|