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

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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x

    各位大神好,本人现在遇到了一个棘手的问题,不知如何使用matlab进行分组预算。9 v* D) y. X! S: q
    如图所示,本人已将数据进行分组完毕,运算部分的代码很简单,本人也已经完成,只是这个识别分组这里不太会,如果不能实现分组识别计算的话,几万组数据只保存在一个excel文件中,手动输入的话,确实有些繁琐,烦请各位老师指导一下。
    9 V6 I# y; N7 Q7 L/ B4 k本人已完成的代码部分也一并提交,代码中的数据为其中一组数据,望各位老师予以添加修改并指导,多谢!

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

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


    % g, ]. T1 v- D


    / y3 t- P4 U. e0 D6 m* C5 t( O" w4 S! D: ]: p$ X
    x = [4.1441    0
    ) M1 N1 ?1 C6 D4.4684  0( a8 Y) S- u* R4 e! F. O
    5.7308  0.0021 _  V; D, a- }4 g
    9.4417  0.0042/ M: Y3 ^4 J' X% o
    11.6335 0.00598 |$ f( d- O2 b- X$ i
    13.4882 0.0073. X: Q  y: T" T; W+ P3 l
    14.247  0.0078- [# X* }& m/ j4 E$ i
    14.6688 0.008
    # Z7 ?0 _' g% [4 s# B13.7427 0.0068& r9 m' c( C. }
    11.8059 0.0044
    0 B7 ~- Y0 Y9 S- K$ o! m8.6033  0.00158 `6 J& s  ~0 F! V0 q- Y
    5.2315  -0.0013& Z7 l1 b& g0 E( s4 _* l1 r
    1.6184  -0.0036
    $ q- @& {% y, k' c-0.8267 -0.0055
    7 t2 m& S) Z* q6 g+ @" q-3.5249 -0.0076
    , A/ \" n$ a; {, ]* e; J$ Q. b-5.0424 -0.0089
    ' D5 X/ r. G4 S; ]/ P+ P' h-5.97   -0.0096
    $ H& v9 L6 P- u  I-5.9694 -0.0099
    , ~0 W5 o1 N, j-5.5492 -0.0089
    0 |; `- U1 K/ o- V-3.0212 -0.00621 L4 Z8 C- z! n. v2 B7 D
    -0.4088 -0.0035];
    + C* {3 ~$ X3 a, W# Z# [, h4 k  M %  p0=[1 1 1 1 1 1];
    ) I2 t; P( Y! o* |* U, \- O' H  p0=[0.005 0.005 0.005 0.005 0.005 0.005];1 U7 h& d$ S2 Z6 U# n3 y
    warning off% C! ~7 F% B: s2 E% [
    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);- J0 l: t+ i7 |- `
    % 拟合系数,最小二乘方法
      H# R9 c. y7 j$ wp=nlinfit(x,zeros(size(x,1),1),F,p0);
    4 G7 i( Y+ T# N% Lp(1)/ l& {; J/ O* U( U( C  |; n8 V4 _+ ]
    p(2)
    - M1 S& j( P9 T( up(3). Z% C5 q6 \+ ~1 k* M" v
    p(4)2 |5 j0 I/ t2 j- b; k* U2 |  M
    p(5)1 G: f9 N0 O% ]( F9 |, p! b
    p(6)
    ! N* t3 Z8 H; Y5 w1 J, W
    0 J% h  ]" ?% q5 }* F+ P9 [
    5 x9 h+ @5 X0 b4 W3 t$ ]A=p(1)/p(6);
    4 V! P. o, |) G$ u; r$ x) bB=p(2)/p(6);
    " }: h4 g( A! i/ `1 TC=p(3)/p(6);' u' T! T/ F1 D7 L* [
    D=p(4)/p(6);
    & O- k9 J: `6 }" j) ]E=p(5)/p(6);
    . h2 Z! g0 z5 n/ B9 b
      \" f  P; k/ h0 J7 N, _3 B( U8 u: k
    %%椭圆中心
    6 f) o% v# u: y9 [; r+ K1 QX_center = (B*E-2*C*D)/(4*A*C - B^2);0 H! ]( u5 x5 Z! _& O: M2 s
    Y_center = (B*D-2*A*E)/(4*A*C - B^2);1 a( {* W3 c; C4 h
    fprintf(' X_center=%g, Y_center=%g\n',X_center,Y_center);
    - [4 `- d! ?8 E5 p%%长短轴! b) f' g  ]+ U, l
    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* n7 C0 l' F
    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))));( Z% N% ]7 Y1 A# C3 y
    . C) l9 N1 C+ ~9 z) ~) }
    ; l  f/ X7 J5 o  u8 n
    %%长轴倾角
    * Z# q! n# n# I6 @& N/ bq=0.5 * atan(B/(A-C));1 ?' r6 l) ^# |& y
    fprintf(' q=%g\n',q);
    3 q" H9 O2 Z0 N# i
    . G& `3 z( B8 k# r- k
    . s# [  C% I! V7 J, `. l% Sfprintf(' a=%g, b=%g\n',a,b);
    ; ?) P/ E: f: D" ?% Zplot(x(:,1),x(:,2),'ro');4 [  \. J, O, z; e. Q2 y* {3 T& f2 p: o

    7 S# x; J4 A+ J6 ~' G1 [5 N' C0 u( }9 E
    hold on;. P0 I6 n+ O4 ]3 ]
    xmin=min(x(:,1));
    7 R7 C1 U& O9 C2 z# [0 }xmax=max(x(:,1));. W- ?6 F* w6 j2 r9 f5 Z) c
    ymin=min(x(:,2));! J5 ^! X# Q4 i9 i8 F4 H* q
    ymax=max(x(:,2));% z$ q5 [1 C" f: s% o  m* c
    xmid=(xmax+xmin)/2;2 d+ G0 h# l1 u
    ymid=(ymax+ymin)/2;
    ! V; F  N6 p% lstri=(xmax-xmid)*(ymax-ymid)/2;
    4 T  j2 |2 L' _3 DS=a*b*pi;
    - R$ r  a2 m; c! a: [3 \* }: \z=S/4/pi/stri;
    ( L% j$ E" {2 M; s5 p' r% 将数据组集到data$ e4 a  ~! [8 `2 e# M
    data = [xmin',ymin',xmax',ymax',xmid',ymid',a', b', A', B',C',D',E',stri',S',z'];& w1 |& p! Z; L, }) d& j
    % 将data切割成m*n的cell矩阵5 r3 \- R( C% s) }
    [m, n] = size(data);% T6 A  W6 }! q9 g3 ]! `
    data_cell = mat2cell(data, ones(m,1), ones(n,1));   
    % A" b5 h5 J5 i; x. Y9 n" Q/ @% 添加变量名称5 _! u$ c* z% I' h! b
    title = {'xmin','ymin','xmax','ymax','xmid','ymid','a', 'b', 'A', 'B','C','D','E','stri','S','z'};, w$ o4 X, `$ [" \5 r; e( U1 z
    % 将变量名称和数值组集到result
    # d$ C7 D$ i! ~7 t" tresult = [title; data_cell];5 M5 j& ]7 \) T5 U1 U  e
    % 将result写入到wind.xls文件中' y5 C: d7 [. l" Y5 ^9 e
    s = xlswrite('wind.xls', result);3 C- ?* C9 Q+ A4 D( N, U
    + {) H$ m* P3 p; t7 Y
    & k+ s- ?+ N  G' W' q; a7 J9 c
    % 作图
    : \* L; c: O7 ^1 M$ P! l2 T%ezplot(@(x,y)F(p,[x,y]),[xmin,xmax,ymin,ymax]);
    ) e. f* c% q4 t8 G# `+ G2 h" Z* J; H6 L%title('曲线拟合');
    5 |( B  _/ o! P1 f& k) q" d2 ?%legend('样本点','拟合曲线')
    & w2 S- z' ?8 w$ R; ^0 N
    / b5 t, q/ B( A8 M" q

      t# l; D1 n2 F5 r4 Q, T
    : w- u$ D$ N" O' o
    # E0 W8 {3 y& F! T

    3 Z7 c8 t5 I" `1 K/ A5 Y
    " }9 b5 Q" n' |3 V  e, c+ k
    $ |- @/ u" b+ r6 W/ Y1 [# h4 u

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-21 21:03 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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