TA的每日心情 | 慵懒 2017-7-12 08:29 |
|---|
签到天数: 7 天 连续签到: 2 天 [LV.3]偶尔看看II 累计签到:7 天 连续签到:2 天
|
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
====================================================================================9 v2 z" A/ N. H/ y. f" Z
matlab求矩阵某一列的最大值及所在位置 下面是一个关于求矩阵某一列的最大值,并确定其所在矩阵的具体位置,即行列号,但修改多次发现它运行得到的列号都是1,而不是我想要的位置,为什么?2 m8 v' j7 `" P$ Q5 ~
function max_min# j* l+ z; H0 [7 }7 m
clear;clc;1 Q, e \0 c) R+ x6 s
data=load('G:\自主学习\任务\log data.txt'); %将记事本文件导入1 j& k) Z. T6 Z9 f4 ~0 v
GR=data(:,2); %GR——自然伽玛
9 |4 ~+ `; z/ W, j" KA=size(data)8 e, e# @; }$ _2 D4 D
[MaxGR,m]=max(GR(:))5 }1 _9 I ]4 l+ O1 D2 k
[row,col]=ind2sub(A,m), l' x$ k, C I. ?7 ]
end
5 \5 r8 }% g7 _8 ~8 P6 t" _运行结果:
j' R: l7 q- f# `A =
& G( p1 F6 o; {& I( R" B1 W" L$ d 2259 4
Y* a0 G" @# G3 Y- i/ f, e. h3 Z G( W- O
MaxGR =
( R, D6 M. B# l" X4 P 216.95663 S. \% m: q" m7 r7 W( u
; \) a5 G9 i) t7 i+ C' E" Am =
5 n; s5 _8 G5 L$ y: l0 H; u 2223
" O' ]& ]! H Q- D3 j1 `. X' R' r1 v T4 I; \
row =
: H: g/ t0 J* D- ^( L; V* e; _ 2223$ W' y, F5 h, v4 y' u# S( b
' Y5 I( T( M8 s1 b/ ]col =
% |) T1 B4 f! k' n, n 1 此结果除了最后的col显示有问题,其余结果都是对的,我不知道为什么?对此问题该如何解决呢?这个问题归结起来就是求一个矩阵某一列的最大值,并确定该最大值在该矩阵中的具体位置,请各位指点一下......
; U8 e4 E, F; i在自己摸索的过程中,也搜集和实践了几种关于如何求矩阵最大值的方法,拿出来跟大家共享:
3 k9 m- m# ?! D# q X第一种:' [+ i* K+ V5 w* n1 \/ F
clear;clc;
% X; U$ _: \4 M PA=[0 17 50;-12 40 3;5 -10 2;30 4 3]
6 C7 Y4 Z6 i4 z0 ]% t[C,I]=max(A(:))4 F3 Q: _4 B; Z. s8 g
[m,n]=ind2sub(size(A),I)
# ~" v3 ~' Z+ J+ Q1 h9 ^3 i运行结果:
$ b+ K+ k9 m: @0 O! F# v. \A =1 C4 W! h8 u4 s! T- E
0 17 502 C3 u, B/ I2 S: j
-12 40 3
6 @. `/ w) w: x" J, m( u 5 -10 2
* }' Y7 R, N2 F( c' p5 n: M* M 30 4 3( o" S, y& }% {! Q2 c
5 z+ L0 Q6 [: u; R3 k
C =3 N4 O; I( H0 m3 J* i1 a. C
50
6 n6 A% `/ V4 y! ~* e) w5 d1 w4 i* {% s' u& a
I =' `. x6 H8 U; t6 H9 P, e2 q) G
9; f( }! p6 r# n6 Z2 b
$ {2 q/ U& H! s$ Tm =" R/ m6 A" p7 g1 ~
1( c* T. j- S4 P
8 f: I$ Z& W7 Q7 s5 p+ M
n =; L* n$ S6 n ~! m+ m; B
3
6 a1 J( ^" B* }' R第二种:2 l$ J; n/ ~0 M" ]; R
clear;clc; j8 g7 q& H; y) U7 M: n
A=[0 17 50;-12 40 3;5 -10 2;30 4 3]. L7 s3 y& v& v9 K) P
[M,I]=max(A)
( V8 b* `9 \' U: }* q! e- [[N,J]=max(M)
/ w4 w/ J0 u% s6 J% Z K[I(J),J]# a r9 ?& I& i" s! Q; b0 g
运行结果:" H- r, g8 I5 z/ z# t
A =
/ ]% i7 k# s/ N' }' R' s 0 17 50) O. s: \5 ^ M( d8 k" q
-12 40 3" }, A% A6 x. Q* s" C0 t' a
5 -10 2
8 O" t7 \3 S& P5 L3 g- T 30 4 3 {( z% T& V1 A5 S t
: `7 q( L" {/ u9 j/ \M =
1 b8 ]' k- U& Y% x: V( g: w/ Y# b& V/ v 30 40 50- F6 @+ h+ U" G9 T* S; d
% W# d# b# N6 b% M
I =
5 g$ |, H2 H" F 4 2 1
# b$ q' r& D, V4 ]5 q5 d$ X5 s
6 \- [) x" ^9 \7 e( |, ON =
9 F$ r" R( t7 {3 v 50" m0 J% p1 H, X6 m/ b
4 M X4 f. N4 A9 \
J =! r" g) e+ [7 s+ W: g6 M! J3 D! a
30 U: V, ?, c( A. t- J! v) P
& y u. _* K$ \: z" a! Oans =
+ U M/ H; ]: d! d* V5 n 1 34 ^# r0 ~7 t- F
第三种:
6 o& X& O5 J* g u# S, E+ Sclear;clc;; ?) W+ }' Q* U4 ?% v
A=[0 17 50;-12 40 3;5 -10 2;30 4 3]1 U# {& _$ A- k
N=max(max(A)) %或者N=max(A(:))
' h$ L: F6 i8 ] i! H. r[r,c]=find(N==A)+ p& I9 K. v, r; d+ a
运行结果:4 p/ l8 l8 U7 `8 N
A =
f9 {. j( K' v% `# C$ l9 { 0 17 504 j% E3 o- |1 i& L6 p
-12 40 3" Z+ m/ v6 k' g& q' j+ D, E8 C
5 -10 2
& B- h5 H0 Z7 P) _. V7 m 30 4 38 G% u; n1 v' h) q) ~5 x: F
1 @5 n, h7 ]" n8 f4 F* ]N =
2 Y( F5 I' a3 d; d a2 a 50# a5 c( a* _! Q5 x
( }0 ` I! e: t& Cr =
+ D. ~) n9 o- ?# r' r" K 1
9 K5 `: U) w6 b; v% N& t9 q X* L3 v! b
c =3 p4 B3 }( j5 M
31 Z. @: Q8 Z7 H1 ^
至于其它方法正在测试中,待续........ j5 R* ^( n o7 f! ^. L
=============================================================================================== |
|