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

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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x

    各位大神好,本人现在遇到了一个棘手的问题,不知如何使用matlab进行分组预算。
    * M. n8 g% r1 Y# J# Q( [7 j如图所示,本人已将数据进行分组完毕,运算部分的代码很简单,本人也已经完成,只是这个识别分组这里不太会,如果不能实现分组识别计算的话,几万组数据只保存在一个excel文件中,手动输入的话,确实有些繁琐,烦请各位老师指导一下。
    ! f2 t2 ]4 X8 w3 a: b本人已完成的代码部分也一并提交,代码中的数据为其中一组数据,望各位老师予以添加修改并指导,多谢!

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

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


    ; ^4 x$ e% a# ]" H1 ?


    - B9 T; J" J5 m
    6 p: @" a; R$ @7 N- r x = [4.1441    0/ w8 k+ ~& c- `4 D1 [
    4.4684  07 v8 c# z3 @% Q
    5.7308  0.002
    ' j- ?' y# ^  f3 H6 j/ I* z5 A. X9.4417  0.0042
    / |1 y. i$ r0 N: h- r. C11.6335 0.0059; Z6 R) s- w9 A
    13.4882 0.0073
    . s/ F$ A  U$ O. x! S14.247  0.0078. N0 x6 J' G! B$ E1 {, W3 o
    14.6688 0.008
    / g3 @9 Z8 G- t4 I7 z13.7427 0.0068
    " r, s6 h% L9 Z, d11.8059 0.0044
    ! u, \+ J1 h8 T" z/ |0 E8.6033  0.0015
    # X- t! P+ r+ V2 i5.2315  -0.0013! m- ]- |5 E' n4 ?* s; W
    1.6184  -0.0036
    * ?7 V$ L/ [! c-0.8267 -0.0055
    7 X6 W) a+ |3 }5 i1 I' v& f9 Q-3.5249 -0.0076
    9 N. H( w( `( A: B) v-5.0424 -0.0089
    0 ~. P7 ~" N. |+ X, D-5.97   -0.0096! ^3 G' k: `1 d# R( h
    -5.9694 -0.0099# ]/ f/ M' r. B: E, q. u% X
    -5.5492 -0.00897 R' `+ c) q* C8 F" t
    -3.0212 -0.0062
    8 u! C+ k! Z4 s, W; J1 U- E-0.4088 -0.0035];  {( N$ Z( R9 Y( w
    %  p0=[1 1 1 1 1 1];6 ?/ E! X) S* B: D: {3 [2 b% G
      p0=[0.005 0.005 0.005 0.005 0.005 0.005];
    : {" a7 _% l, O( J& iwarning off% @& `9 r! z* I6 J. Z
    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);
    * I: x1 o0 _- R% 拟合系数,最小二乘方法" D3 g" O3 o: [  a9 u
    p=nlinfit(x,zeros(size(x,1),1),F,p0);
    & h: W9 }) G* \  [0 X$ Lp(1)
    7 f6 s6 w3 O& W, U$ d2 Jp(2)& Y  u) O2 ]% t+ G3 ^
    p(3)* Z3 t7 Q; _/ \
    p(4)
    4 b8 Y3 |( W) Y9 G0 F4 l+ yp(5)
    & `; E2 Q% F. `$ B& g; F6 e) n3 yp(6); |' X: @  r5 B. }/ O2 ?
    7 M% V; |, J5 k. h! i
    7 X5 w" S5 @2 a. |5 v
    A=p(1)/p(6);0 N) s/ A/ {' |" ~6 _$ ^+ P; f; T
    B=p(2)/p(6);( s3 U1 _$ `* {( e% s6 o" f# b( X
    C=p(3)/p(6);% k: d, z5 @! C4 s# l5 e9 {. E; L! [% |* z
    D=p(4)/p(6);4 |' ?3 Y: C& I; K
    E=p(5)/p(6);
    . ]# s9 A4 I0 Q+ z2 B7 S% Q- a
    4 w& J1 G' B1 b' U
    %%椭圆中心: p. ]3 K5 t2 [6 p, s
    X_center = (B*E-2*C*D)/(4*A*C - B^2);- l/ @4 n! C! i1 q/ g4 L
    Y_center = (B*D-2*A*E)/(4*A*C - B^2);
    3 ^2 E; l5 g* }. b7 Sfprintf(' X_center=%g, Y_center=%g\n',X_center,Y_center);
    0 Q  Z. h0 ^  }& H0 }6 |%%长短轴
    * ^& H" y: _1 U3 B( Na= 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))));5 t. t' ^7 d  J
    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 q" L4 U" N) q) _# @$ w0 S% j/ V: U. a/ F0 D* ]
    0 S) w& O, Q' e/ c" S8 N
    %%长轴倾角, K+ r# ^7 ~0 V/ d1 ]$ C1 G
    q=0.5 * atan(B/(A-C));
    , S- x; `6 B1 J5 z; Sfprintf(' q=%g\n',q);8 \% \" A2 w5 p/ \
    ) J% I( c9 z3 W3 m

    ' E# t0 t! |5 e0 V  zfprintf(' a=%g, b=%g\n',a,b);
    4 R% N% O5 V% }plot(x(:,1),x(:,2),'ro');
    ( q6 K$ N: y) D* @
    4 w' V( E3 ]: E1 @/ J6 K
    ! n9 C- J7 ^, J- U* ]0 w% Chold on;2 C" Z( R- P7 m/ [$ T$ R, u% W" N
    xmin=min(x(:,1));
    7 H( J+ C8 c8 M$ ]2 @. Jxmax=max(x(:,1));
    : V  U: Q  E( Oymin=min(x(:,2));4 \5 L/ _: S, s' z, [
    ymax=max(x(:,2));
    7 z/ \: I+ @/ r1 Sxmid=(xmax+xmin)/2;* G0 X1 \+ S, n. Y
    ymid=(ymax+ymin)/2;
    * V# R5 P; [7 b; t9 P& N' k" S0 Estri=(xmax-xmid)*(ymax-ymid)/2;
    : h" Y) O' N$ H8 f( |: Q& n2 zS=a*b*pi;: c2 x2 @% Z* u
    z=S/4/pi/stri;! j. N4 E3 A6 O# r1 k( G/ u
    % 将数据组集到data; P" }8 l1 j! [" l5 u/ J
    data = [xmin',ymin',xmax',ymax',xmid',ymid',a', b', A', B',C',D',E',stri',S',z'];% A8 o- x0 f3 {/ I+ E  A% k! i  L9 d
    % 将data切割成m*n的cell矩阵. q& w2 b/ }! J6 H4 _! W" Y
    [m, n] = size(data);6 o0 y7 P  ], y6 ^% I2 X
    data_cell = mat2cell(data, ones(m,1), ones(n,1));   : h5 k+ u* k6 J3 ?8 J
    % 添加变量名称
    ) S8 \( x7 L+ S8 dtitle = {'xmin','ymin','xmax','ymax','xmid','ymid','a', 'b', 'A', 'B','C','D','E','stri','S','z'};7 @+ y. I7 V' o: M/ ~8 D
    % 将变量名称和数值组集到result% {0 r+ {: K# b3 t: `$ K9 U" R
    result = [title; data_cell];" u" [9 E5 c6 ]1 U  {% Y  h
    % 将result写入到wind.xls文件中
    9 ~) \( m& U; I# s* E% As = xlswrite('wind.xls', result);
    - x7 {7 R2 m# K) P. E7 U9 {. B+ b' a' j! P5 _
    / G, t; n- Z0 Y& j! Q/ ]+ l
    % 作图
    & ?& x' I# ^0 S2 [0 n# F%ezplot(@(x,y)F(p,[x,y]),[xmin,xmax,ymin,ymax]);
    2 ]6 K+ H6 S# @" G%title('曲线拟合');
    6 i2 E5 J1 F$ I- R* D%legend('样本点','拟合曲线')

    4 S. K1 a, A' U$ L( Q- u- a
    2 w! i- _& l8 }! `) x. G$ \

    . U) `) F% z; m1 I' g
    0 }+ p# \5 i3 D' Y
    6 [% J  ^  H" i7 q  r

    9 G: C6 i$ P; ]3 n5 c  h3 Q6 {* y
    7 E; p- I/ m4 ?- G
    8 g: |: B3 C& I) `5 J' Z5 ^6 ~

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-4 15:45 , Processed in 0.140625 second(s), 27 queries , Gzip On.

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

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

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