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

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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x

    各位大神好,本人现在遇到了一个棘手的问题,不知如何使用matlab进行分组预算。1 O! O, H" B5 @5 c  N6 ?! s
    如图所示,本人已将数据进行分组完毕,运算部分的代码很简单,本人也已经完成,只是这个识别分组这里不太会,如果不能实现分组识别计算的话,几万组数据只保存在一个excel文件中,手动输入的话,确实有些繁琐,烦请各位老师指导一下。
    ' s) E. F/ {8 J( f% O9 y9 c( G- Y本人已完成的代码部分也一并提交,代码中的数据为其中一组数据,望各位老师予以添加修改并指导,多谢!

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

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

    $ o, ^) B( L0 D


    ( C' ]  B0 r* ?7 b# w) S& x
    * Y. u% E) M" u4 n4 ]/ ^ x = [4.1441    0$ W$ W- z+ v1 z! n
    4.4684  0
    9 r5 _6 z% Q" F; j' C5.7308  0.002
    7 F" h& ~5 j1 U1 D; ?# K9.4417  0.0042
    / b! S3 Q4 j) l6 r1 M8 V11.6335 0.0059! H* Q: o* `9 Y$ X! ?
    13.4882 0.0073
      B" a: A$ h* a: s+ p14.247  0.0078
    / m: ~. _) `+ D9 i6 y$ w14.6688 0.008- {0 W# A7 B; g8 s
    13.7427 0.0068$ q+ }- _- O' ?) y) y9 [. z: q! Y
    11.8059 0.0044
    1 V" }! X5 J0 z9 S" ?2 n0 w8.6033  0.00157 S" x9 }4 {, F8 n% a) a
    5.2315  -0.0013, d6 N2 I) y& s8 V+ E; m2 C7 J
    1.6184  -0.00369 W! l8 U; b  ]5 d
    -0.8267 -0.0055" f4 ~5 w- R! B
    -3.5249 -0.0076
    5 |0 s: ~1 i  E6 r-5.0424 -0.0089. f  V( D# b; f6 N; _
    -5.97   -0.0096
    * y0 U' [9 Y) u% E; X$ M/ k& s3 L! a-5.9694 -0.0099
    ' ?# [0 g$ ^1 ~) r9 \-5.5492 -0.0089
    * Z' i6 f8 }4 U/ B" Q1 s-3.0212 -0.0062& n; }9 f% U+ D. H8 x8 Y
    -0.4088 -0.0035];; L3 [( r* m3 ^
    %  p0=[1 1 1 1 1 1];
    * D9 K& w6 _' V/ |8 z3 j$ `( i  p0=[0.005 0.005 0.005 0.005 0.005 0.005];4 l' {% }. A8 K3 d  _+ y
    warning off# G2 J/ [% x- x
    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);
    4 z; i$ a9 W) F  V2 l% 拟合系数,最小二乘方法
    5 k1 r' V" y4 k1 V1 y: [p=nlinfit(x,zeros(size(x,1),1),F,p0);
    $ o0 x( I4 t; R4 f; H) {p(1)' D7 c+ \8 D3 S% I
    p(2)
      \! C, W1 C$ w7 |8 t8 jp(3)4 a- ~2 R1 c. y9 A" `
    p(4)
    # Y" u5 d9 k! J, |. Op(5), Y( ~7 ~: [+ _: m  w1 w7 K, Q  r
    p(6)
    ; T8 n! h/ J2 G8 M# O
    - w' T" M& P0 _! w9 L4 p" H* c# T! t4 ]
    A=p(1)/p(6);
    ( R9 H" [! [3 D# Y/ ?  O7 ~% h- XB=p(2)/p(6);+ J( Y( f. m1 n* M
    C=p(3)/p(6);( @. k4 K# K1 \# `
    D=p(4)/p(6);0 R; _" e# B$ a$ ^
    E=p(5)/p(6);  E5 C4 q% s8 N8 T& G" c

    4 D; p9 O$ i/ h/ R9 l4 k) i" w: J* S5 W. M$ y5 w
    %%椭圆中心
      Y- H  s0 [% ]) a- vX_center = (B*E-2*C*D)/(4*A*C - B^2);* u7 J; O2 V1 @
    Y_center = (B*D-2*A*E)/(4*A*C - B^2);/ E# u: p( E; L0 \# v( ?
    fprintf(' X_center=%g, Y_center=%g\n',X_center,Y_center);
    $ h6 g& z3 x( L# Q%%长短轴2 n' W. z: m' k2 Z$ X5 ~; m& m
    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))));8 P8 {2 ?, K" W! o  D/ }
    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))));; o. c3 k# E) j4 ?

    , ^' V3 T+ |% D: K) @: t3 y+ q
    7 {) s" ~0 }/ a) w%%长轴倾角0 u% I: ?9 }1 ]7 }1 ^
    q=0.5 * atan(B/(A-C));
    5 L$ X, Z7 i- R  q0 pfprintf(' q=%g\n',q);5 A( E, @) b  k4 K/ P  I: H) K
    : P! Y( P" o4 N/ k6 Z+ |

    . {) l5 Y5 y# a4 m# Nfprintf(' a=%g, b=%g\n',a,b);
    ' P- k: i! E$ i+ w0 Y4 Pplot(x(:,1),x(:,2),'ro');: i0 E0 y; k' i! f6 r8 ?7 U. P% `; J
    0 e8 e- U& G  J& P' Y
    % z+ y0 ^% r! p) \
    hold on;- D$ c0 N3 M5 L6 u
    xmin=min(x(:,1));
    ' ]4 _& E2 |8 \6 mxmax=max(x(:,1));8 f3 U5 ], @# c+ e
    ymin=min(x(:,2));
    5 J/ d# [3 y' Q6 T1 Tymax=max(x(:,2));* i' \# f! ?& a, k8 r
    xmid=(xmax+xmin)/2;
    0 `$ y; |: p9 j; ^- q% Jymid=(ymax+ymin)/2;9 c2 c/ ^5 P0 v6 B2 m: i% N3 Y
    stri=(xmax-xmid)*(ymax-ymid)/2;0 M- X4 n1 x% H. n$ f. p
    S=a*b*pi;
    * y5 D3 \6 |$ L8 L7 M4 ~z=S/4/pi/stri;5 ]# D0 {2 S9 ^7 C) U! Z. [
    % 将数据组集到data1 l4 ?4 S0 ~5 M! S
    data = [xmin',ymin',xmax',ymax',xmid',ymid',a', b', A', B',C',D',E',stri',S',z'];
    3 T- ]. K- B6 `1 g% 将data切割成m*n的cell矩阵
    3 a# L4 p0 a9 @2 ?$ S( f/ }, @[m, n] = size(data);' {" m4 p  Z) `# s$ ?, b0 X6 Z; @8 a
    data_cell = mat2cell(data, ones(m,1), ones(n,1));   : q+ O: i& i. A$ ?% ?
    % 添加变量名称
    ( U) K* `1 J4 z. J# Utitle = {'xmin','ymin','xmax','ymax','xmid','ymid','a', 'b', 'A', 'B','C','D','E','stri','S','z'};
    8 Z2 H1 R+ c8 M' H. Q% 将变量名称和数值组集到result
    1 b8 l5 r( |. ?  u7 o4 `; V) ?result = [title; data_cell];/ R; n! X. q# y2 u! R
    % 将result写入到wind.xls文件中( m% g' Q0 T; P" M5 {' m
    s = xlswrite('wind.xls', result);2 Z! [+ t3 w9 w! Q. }' o

    + Y7 ~; {2 o9 L5 w/ @: m2 @+ O0 v, l9 T  e% |0 u
    % 作图1 a; }! N* d0 G; q  w9 }
    %ezplot(@(x,y)F(p,[x,y]),[xmin,xmax,ymin,ymax]);
    & V9 [! h) `% L- U" n7 A%title('曲线拟合');
    3 w8 c* A  A) L4 Z%legend('样本点','拟合曲线')

    # w1 v: S; t& p0 i1 _

    % p9 i- t( v- ]# ]8 n1 ^2 I" v6 |! g! m) A

    4 r1 L4 n" b% ~
    # \( @; z; K% y9 O* ]

    ( ~! b2 X* W; ?
    3 n* h. _7 \* u( l: S0 Y* f
    6 Y0 v) q; S* M2 g! a

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-23 19:12 , Processed in 0.156250 second(s), 28 queries , Gzip On.

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

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

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