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

不知道怎样利用matlab进行分组运算,哪位大神给指导一下吧

[复制链接]
  • TA的每日心情

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

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2019-10-8 17:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x

    各位大神好,本人现在遇到了一个棘手的问题,不知如何使用matlab进行分组预算。
    1 t5 ^2 J7 G% X2 u8 ^如图所示,本人已将数据进行分组完毕,运算部分的代码很简单,本人也已经完成,只是这个识别分组这里不太会,如果不能实现分组识别计算的话,几万组数据只保存在一个excel文件中,手动输入的话,确实有些繁琐,烦请各位老师指导一下。
    ! W* h0 W* I, B* H8 i9 k本人已完成的代码部分也一并提交,代码中的数据为其中一组数据,望各位老师予以添加修改并指导,多谢!

    目前本人的代码只是将图片中的前两列数据手动复制进代码,本人想直接将图中的三列数据全部导进去,并根据第三列的数组进行分组计算(数字相同的为一组)

    ps:本人使用的是Matlab r2018a,运行环境的macos


    & Q7 r( E7 c4 l5 g1 e6 @


    , a# ?' [. \8 {1 g* q
    3 C5 i. U, [) {7 V  \ x = [4.1441    0* Y' K$ u9 F% o
    4.4684  0
    ) Y8 R' y+ N( ~# ^5.7308  0.0029 L7 N/ A6 p( i( t- ~+ I
    9.4417  0.0042
    3 V+ F* x  b9 l4 V4 S3 t, v7 w11.6335 0.0059
    + v) d& X2 X0 z13.4882 0.0073
    + N. Y$ l: S9 z* A! u' f14.247  0.0078
    , F3 u/ M; B* x; g/ e! n4 }' w14.6688 0.008
    5 u3 @' _( _5 Z' t9 U* W  ~13.7427 0.0068' {- H4 P6 I5 G) K+ J! e8 G
    11.8059 0.0044
    : H' q  [, O. f* w3 |1 y8.6033  0.0015
    3 z- e$ T8 o" O5.2315  -0.0013
    1 j& U* _& ~) K) O9 I- o8 C/ J1.6184  -0.0036' w- X8 ~1 v+ k
    -0.8267 -0.0055
    . h$ U; q9 a: U-3.5249 -0.0076
    + x! l' |/ j) H' U+ n; l1 @-5.0424 -0.0089
    " t0 ~+ a: s) I/ \, ^-5.97   -0.0096$ i1 k+ p9 t' J* d9 `+ [
    -5.9694 -0.0099
    - Y. F0 I1 U1 W-5.5492 -0.0089! }$ j, y7 I5 Z$ M+ B
    -3.0212 -0.0062- t: h1 ~: I& u7 C% w) I; }
    -0.4088 -0.0035];5 g0 Q) R; S9 V# g( d0 {; ?
    %  p0=[1 1 1 1 1 1];
    1 g, c3 J5 |. u/ v1 u2 x" k  p0=[0.005 0.005 0.005 0.005 0.005 0.005];  W* r! e" G* g6 D
    warning off3 I, G6 I. a' T6 M" |1 p
    F=@(p,x)p(1)*x(:,1).^2+p(2)*x(:,1).*x(:,2)+p(3)*x(:,2).^2+p(4)*x(:,1)+p(5)*x(:,2)+p(6);2 M7 y2 R- j7 B4 k
    % 拟合系数,最小二乘方法
    ( [: ?5 O  j4 i) @: Vp=nlinfit(x,zeros(size(x,1),1),F,p0);& |; e7 l( }7 E. n2 k4 T0 M1 a9 U  B
    p(1)
    ! T; q, d0 {) {9 W( y" w) |p(2)
    ! F( p% U& B5 O8 Lp(3): g: G3 C( c2 {/ R0 b
    p(4)
    ) l# H0 e/ F  D' t# t: U/ ]p(5)
    ' {  I" _3 R1 U7 ?p(6)
    ( d3 ^0 M7 f9 [8 z9 ?& K  R
    / y7 J2 w# ], ?$ {1 v" d# E5 h; a# P7 q2 t  e
    A=p(1)/p(6);
    - S% x' ]4 s1 s7 J  V: eB=p(2)/p(6);
    9 P8 i* B3 |& v( tC=p(3)/p(6);; _8 w9 E  \. H$ u' F
    D=p(4)/p(6);
    % N* c1 O$ [+ u/ A5 [) xE=p(5)/p(6);* {/ W' n) q# b) N. r, V
    % \. e4 N$ l7 c5 c) u
    3 ^  k6 B) L+ n
    %%椭圆中心
    / f1 E' m; K- r& cX_center = (B*E-2*C*D)/(4*A*C - B^2);5 L* \) u2 c, }. ^" z
    Y_center = (B*D-2*A*E)/(4*A*C - B^2);
    6 {7 I8 s) h3 j& D1 b+ ?. @6 Jfprintf(' X_center=%g, Y_center=%g\n',X_center,Y_center);
    ; g$ ]0 f! u* e4 R$ c5 {. e%%长短轴8 D  C( ~5 J" S- x0 d
    a= 2*sqrt((2*A*(X_center^2)+2*C*(Y_center^2)+2*B*X_center*Y_center-2)/(A+C+sqrt(((A-C)^2+B^2))));, I- S( A# m3 q" m- d7 v6 z& C
    b= 2*sqrt((2*A*(X_center^2)+2*C*(Y_center^2)+2*B*X_center*Y_center-2)/(A+C-sqrt(((A-C)^2+B^2))));1 M( @6 c, h2 H4 s- k& D
    ( @1 a! a; C. C2 \" c
    $ c. U) A( `) M+ [' }( l6 t
    %%长轴倾角
    2 j$ r4 P* ~, q2 i$ u0 eq=0.5 * atan(B/(A-C));/ _0 p, z# O3 p7 ]0 ^$ Q' o
    fprintf(' q=%g\n',q);) N7 u( @3 z0 q$ Z

    # J+ }" j7 b8 X& `" B# B' {
    * d; V6 D( n* L( t! pfprintf(' a=%g, b=%g\n',a,b);
    ; P# O/ y. g* w" v# O5 ], m/ @plot(x(:,1),x(:,2),'ro');
    # m0 ?" ~7 E, x$ i- O) z, r* w9 F5 R% m+ ~' b' O& \8 _
    1 W% J7 Y2 q, |; q
    hold on;
    " Y" d# e9 R) Axmin=min(x(:,1));
    0 C: t& X! m0 F$ a4 ~% }7 n$ Z5 Dxmax=max(x(:,1));
    , ^0 E4 N9 s1 I  u6 z3 xymin=min(x(:,2));
    0 f( L' ^% y5 |7 mymax=max(x(:,2));
      N4 f2 Y( `( ]3 Cxmid=(xmax+xmin)/2;) }% z: ]9 X' Z3 r+ R0 `- `
    ymid=(ymax+ymin)/2;
    - u4 R7 e! D- V7 T$ ?# R. {& m: [: gstri=(xmax-xmid)*(ymax-ymid)/2;; N* E( H! M* F1 q$ v
    S=a*b*pi;
    & C  e# d) L: ]: H" hz=S/4/pi/stri;. Q6 A. d9 t  G) Z2 q. H
    % 将数据组集到data$ S& S& i  |& |, t
    data = [xmin',ymin',xmax',ymax',xmid',ymid',a', b', A', B',C',D',E',stri',S',z'];
    7 v8 Y# M# k- y/ b1 U% 将data切割成m*n的cell矩阵* @3 d9 m# Y7 l; c1 \
    [m, n] = size(data);0 S! E( s' V1 t4 q0 S
    data_cell = mat2cell(data, ones(m,1), ones(n,1));   1 z6 e. i( Y5 |( e, O9 ?; R/ ^+ K- v+ ~: d
    % 添加变量名称7 d" i1 Z5 Z/ c
    title = {'xmin','ymin','xmax','ymax','xmid','ymid','a', 'b', 'A', 'B','C','D','E','stri','S','z'};2 f  V2 ^% J1 ?2 j/ m
    % 将变量名称和数值组集到result
    ; b9 X# b5 D% x, Gresult = [title; data_cell];: {0 b- K  R: T& I' S% w, f
    % 将result写入到wind.xls文件中
      o% x) E2 i" r  bs = xlswrite('wind.xls', result);3 I' _/ G% N4 d4 J6 r

    $ d: ?7 x- y; M, \1 i/ t. u! v
    " d7 k0 d1 L( C( t: i! b% 作图7 M3 w0 A1 ^: |9 ~
    %ezplot(@(x,y)F(p,[x,y]),[xmin,xmax,ymin,ymax]);' t& A' ]! z7 W5 B) Q
    %title('曲线拟合');9 V$ F2 {" I6 R! y3 K- i! S
    %legend('样本点','拟合曲线')
    / Q% x/ O7 x9 h: A9 N& ]
    8 X. |9 V" \, x3 A2 k

    3 H2 h7 e6 e  i* y' U. g+ T) |8 [

    5 v6 g2 @/ \/ h1 c' w, b& T3 a' S# {7 n- j9 k* Q
    6 R: t: N: N- q- O9 J

    6 V  p% C# U6 N1 [% D0 h

    2 @# s7 `1 U0 _- L: v( x) Z

    该用户从未签到

    2#
    发表于 2019-10-8 18:35 | 只看该作者
    帮你顶一下
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-23 18:52 , Processed in 0.156250 second(s), 27 queries , Gzip On.

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

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

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