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

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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x

    各位大神好,本人现在遇到了一个棘手的问题,不知如何使用matlab进行分组预算。
    % G/ o, E* X1 S! z; U9 _7 }$ S如图所示,本人已将数据进行分组完毕,运算部分的代码很简单,本人也已经完成,只是这个识别分组这里不太会,如果不能实现分组识别计算的话,几万组数据只保存在一个excel文件中,手动输入的话,确实有些繁琐,烦请各位老师指导一下。) _+ m" M1 r& D' ^; O8 J
    本人已完成的代码部分也一并提交,代码中的数据为其中一组数据,望各位老师予以添加修改并指导,多谢!

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

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

    $ p# S4 {( c, H+ L$ v7 q" r6 H

    # v6 I$ q( P3 o; S& X. Z+ \# @2 X
    2 r5 ]( t( ^( c) d
    x = [4.1441    0
    6 _6 M# N% B2 S4 \4 d1 |1 [4.4684  01 \: s7 I$ M- e9 p: E( G$ X# j0 W
    5.7308  0.002$ e1 u( s+ B5 S0 B
    9.4417  0.0042
    6 c# N5 V2 y* q! f7 y% e11.6335 0.0059
    7 V, q& X, @9 X6 j13.4882 0.0073
    ( M7 t  Z9 z2 O; @: V8 }14.247  0.00784 w/ t7 x& ?, {
    14.6688 0.008
    ! C5 ~! }* S) B13.7427 0.0068
    ( m: F3 i2 Q& E: ~6 i& k/ {$ m5 Y11.8059 0.0044
    : P3 Z( K; s. o7 Q8.6033  0.0015
    3 x  i9 o& a* N$ O% N" |3 }8 N5.2315  -0.00130 q4 c0 Y; C4 }. n( n' j9 S
    1.6184  -0.0036
    ) D. w$ _, l: K' a-0.8267 -0.0055
    3 T: N; h4 q$ r, l-3.5249 -0.0076: d8 ]8 a# J) o8 U
    -5.0424 -0.0089: \4 U2 J! w" \0 o
    -5.97   -0.0096+ g2 g7 B0 V0 i2 B; ^' T
    -5.9694 -0.00991 V+ r9 Z4 x/ S1 u6 h
    -5.5492 -0.0089
    1 _+ c& K% c& @4 T-3.0212 -0.0062
    * i  N+ {( b8 Z8 n-0.4088 -0.0035];
    2 H2 Q6 I+ C$ g0 H %  p0=[1 1 1 1 1 1];
    # }2 O' @  x( s  V  P( ^9 h  p0=[0.005 0.005 0.005 0.005 0.005 0.005];
    - i6 P' n+ w% {8 Jwarning off- E/ E0 F: s/ _5 B7 ^
    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);
    ' `; |; M3 \7 q0 V% 拟合系数,最小二乘方法
    ' j, j. D- X& u& J* }% F, j6 dp=nlinfit(x,zeros(size(x,1),1),F,p0);
    ( Y6 s) w& ~: H& W% E) f8 O+ M' _p(1)
    1 ]  `3 c9 ]9 l5 |/ z( ~p(2)
    1 f* r8 t. J9 E2 I, V; Gp(3)" Q) B, z( ^5 }9 ~  n" S' `' j
    p(4)
    , x" U) e& P* \3 B1 @" D5 O0 L7 jp(5)7 b! O! {5 x2 ~4 ?6 j
    p(6)
    / H1 i2 b2 O6 ?7 @/ s# Y) }5 c7 q  y. {. Q
    . K6 b! p& r# m: v
    A=p(1)/p(6);
    ; H( Z& p4 ~4 ]1 a2 y9 dB=p(2)/p(6);" O  j) a; P1 G( |9 l1 Z
    C=p(3)/p(6);
    # i- h3 W. s5 J) }) ~D=p(4)/p(6);0 B% R  ~* x: b6 r# q/ g
    E=p(5)/p(6);2 X$ ?8 q8 ~- Q6 U+ V  ^
    6 Q7 G8 u- C/ {" s! F" N4 E
    5 p8 s% h* o+ q
    %%椭圆中心
    : I' K* F9 f/ T1 @" _. y) pX_center = (B*E-2*C*D)/(4*A*C - B^2);: r# @/ {4 U- R+ _1 {  |
    Y_center = (B*D-2*A*E)/(4*A*C - B^2);; o( `7 W% L) H6 v% |; I
    fprintf(' X_center=%g, Y_center=%g\n',X_center,Y_center);
    0 H3 Z) ^. m  p6 k3 A3 {%%长短轴' s& j# k  J/ W$ D! `8 W- I
    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))));
    9 z3 h0 w7 j4 Q# W9 Vb= 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, V9 b6 A" K

    & T3 J; M( F) |) g8 }  g9 I& _3 M* @! g, N
    %%长轴倾角/ ?" W2 H3 v! R% A( d
    q=0.5 * atan(B/(A-C));: K% ~( T: A+ x% Y  H: D6 p8 ?& j
    fprintf(' q=%g\n',q);
    % ]/ s) \: W' {/ w  {0 W* N1 ^! R3 ?0 b. J6 i" v5 w7 z3 Z

    ) ^+ p# ]0 O" N) F/ h# Bfprintf(' a=%g, b=%g\n',a,b);
    1 ]; M; W; l% k" Kplot(x(:,1),x(:,2),'ro');
    " @" R% M8 k; X' l7 B$ [' ~! h$ s  l% D! f5 P. O4 N! I+ o

    4 I! M4 h+ l# ehold on;
    0 `; @7 W" c+ F4 [& |xmin=min(x(:,1));
    9 G; x" J2 I$ `; w$ L3 \xmax=max(x(:,1));
    7 i4 l, ]; x- G8 r/ P& ?& Gymin=min(x(:,2));
    4 L- L  C+ s- a' h8 kymax=max(x(:,2));
    / Z9 _. \" ^2 _: d7 x/ x" Exmid=(xmax+xmin)/2;
    / u; ^" }2 H0 D: L5 s1 Zymid=(ymax+ymin)/2;
    ' I' s" U: \- }6 }/ Xstri=(xmax-xmid)*(ymax-ymid)/2;
    / w' S- A) j& G: mS=a*b*pi;
    * n' @, d: d. D+ [2 A: C  ?z=S/4/pi/stri;
    4 u  ]+ L4 z9 U. _% 将数据组集到data
    + X0 g9 q. R" u1 w& udata = [xmin',ymin',xmax',ymax',xmid',ymid',a', b', A', B',C',D',E',stri',S',z'];
    3 O/ x3 B2 Q* c; m" {/ f% 将data切割成m*n的cell矩阵5 z8 a; A- `* ?
    [m, n] = size(data);  U7 P3 t+ l# C7 X
    data_cell = mat2cell(data, ones(m,1), ones(n,1));   - L* Y( E2 N, R! p, g
    % 添加变量名称
    2 s/ t# m( j$ K8 Ptitle = {'xmin','ymin','xmax','ymax','xmid','ymid','a', 'b', 'A', 'B','C','D','E','stri','S','z'};
    . W4 j4 X8 H1 E  A0 t& L# s. I/ h% 将变量名称和数值组集到result
    / O$ d5 e  g! [# ~# Qresult = [title; data_cell];
    4 t0 Z8 v3 h: d5 ?% 将result写入到wind.xls文件中  {# s( }: U+ j7 y4 [$ k# L2 q( T
    s = xlswrite('wind.xls', result);" |( o( Q  U6 _' J% `9 u5 J' m7 `$ v
    2 _) K3 x* p8 l3 A. X
    ( p! ?/ o: `! U+ t9 F6 m: A  Y/ s0 O
    % 作图
    & O. U* j" V* k  L4 h%ezplot(@(x,y)F(p,[x,y]),[xmin,xmax,ymin,ymax]);
    " s, @  v# O* |; I. `+ c0 D; A%title('曲线拟合');
    0 T, i5 k/ T# j%legend('样本点','拟合曲线')

    , X9 s, C+ q0 t( i- q& f
    4 Z# `, A5 G, k* T4 t
    # T& t1 ~! B: w

    1 k& j4 \( f1 p" m; z) X. J% |! E; {. f

    7 c- u' j' S5 l7 `
      w% v1 d$ T  N% W" C* c
    3 w1 d3 u+ ~- p, f

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-20 06:54 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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