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

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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x

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

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

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

    7 ~8 E' M% y% B$ Z


    2 w+ \. r) P9 K* h( O8 M, q1 j) V: i% r( a5 @) K8 l4 N! w
    x = [4.1441    0- Z* `' z+ |' |) t& E
    4.4684  0% ^( F1 p, [2 K6 P, u0 R
    5.7308  0.002$ R, u- a$ Y9 d+ a% G7 g
    9.4417  0.0042  n8 ~$ Y+ r: J& }6 M
    11.6335 0.0059; O2 `8 ]; d- m1 G. Y. l) g; ?
    13.4882 0.00731 @8 _8 ]3 ^7 B/ m& S* e
    14.247  0.0078; V% P( a- S: }' R. V% P
    14.6688 0.0082 P7 E# M4 e. u5 s% m7 i
    13.7427 0.0068; }1 @  R! A' k/ w
    11.8059 0.0044( T" j8 Y; ]! E5 ~8 G/ j
    8.6033  0.0015
    , V, F' K! v7 j/ L8 e& W; w5.2315  -0.0013& ], H6 C" F. |  G
    1.6184  -0.0036
    , [# J) v7 X' E-0.8267 -0.0055
    7 S. [6 @3 P4 J) F: h% x6 H: M: U-3.5249 -0.0076
    & P+ m" \5 m# Z4 ?9 c-5.0424 -0.0089
    " f3 S' v6 f$ b# B* F2 y: l-5.97   -0.0096+ F$ W8 ~$ ]. G# f/ c% T
    -5.9694 -0.00994 @. j# N, m3 d) I7 C
    -5.5492 -0.00897 i$ Q& H7 T) C9 W% v* M& n2 t4 ~
    -3.0212 -0.0062
    2 |; ]  K: J  v-0.4088 -0.0035];. W6 O# E* s% d  ^& N* o% O
    %  p0=[1 1 1 1 1 1];; s( ]8 r, B! \, D
      p0=[0.005 0.005 0.005 0.005 0.005 0.005];7 q# a9 N2 w% b2 l/ `/ m; {
    warning off
    1 H! v9 Z3 L& `7 X1 W* H, KF=@(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);% V  R; m' r4 Y; R% \
    % 拟合系数,最小二乘方法0 ~0 v+ z0 M3 t
    p=nlinfit(x,zeros(size(x,1),1),F,p0);
      u* `4 r1 r& G/ Lp(1)  L9 k/ J! P) J. u. z7 R
    p(2)
    # }! o  b' x0 _$ s7 E3 Bp(3)
    ' X2 y6 w9 C. ]# a  Op(4)
    / |$ O2 S' I& g* g% {p(5)" O' r, a; R# P
    p(6)& x5 Q- p  X# J: ]- l
      D  P0 w* t# ?+ ^' R
    ( z3 l: _( K" x
    A=p(1)/p(6);
    : B1 c( \, C/ a- L' t5 O; |B=p(2)/p(6);
      c1 P  i, f( _, rC=p(3)/p(6);
    9 a+ n8 T* K# WD=p(4)/p(6);
    / e2 F1 Q: d+ E+ PE=p(5)/p(6);* j: K% l9 x/ B& O4 I# A. S6 w
    & R3 n' ~' R$ e5 W
    8 Z- l. t8 T" Q+ M' W+ I4 k
    %%椭圆中心
    % ^$ @! z7 _+ r0 `( rX_center = (B*E-2*C*D)/(4*A*C - B^2);
    + y  \% g% @/ Q" L" |! zY_center = (B*D-2*A*E)/(4*A*C - B^2);
    2 v8 D* @: p  L8 c8 Y! hfprintf(' X_center=%g, Y_center=%g\n',X_center,Y_center);- d5 Y  f* T( t" u8 O( l* A0 j6 l
    %%长短轴% p3 o& \6 n) ^2 R1 u
    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))));
    2 W4 a0 w, s8 ~- Kb= 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))));
    ; v" f5 P1 L3 ?( b  i0 Q* T- \7 e# h# e& H

    # |9 k2 G* W2 o* k$ {" ^%%长轴倾角
    ' M+ n5 d9 K# {& @7 jq=0.5 * atan(B/(A-C));
    8 t. g7 h0 n& A  B* I6 qfprintf(' q=%g\n',q);* E: {; ^5 X( a' b. B
    ! ^: a$ U( C8 w1 }- O
    5 d' m6 t" n: ~/ u9 U8 U
    fprintf(' a=%g, b=%g\n',a,b);& f! o0 v4 N7 d( ~7 X6 B. K% w2 M
    plot(x(:,1),x(:,2),'ro');
    8 A0 D! L" n) t+ x# }
    / l: ~' y; S' v% m- g2 e0 g5 X# G5 I5 t; @- ]$ \
    hold on;- O, r$ M  K! z1 w0 ~3 r
    xmin=min(x(:,1));
    0 l. }$ f: ~# I6 l! a) E: {xmax=max(x(:,1));
    $ ^8 H0 B: k, Vymin=min(x(:,2));
    $ T4 l8 Q/ s: G0 r+ m2 Aymax=max(x(:,2));
    0 `, q1 h. _+ f0 v# p2 W* E- T" `xmid=(xmax+xmin)/2;/ @/ A6 {  x& `0 s; b( e0 p/ {9 Z7 H
    ymid=(ymax+ymin)/2;) _4 ?) T% {% p$ F1 t6 [
    stri=(xmax-xmid)*(ymax-ymid)/2;
    6 C' S$ q4 S+ H8 ]/ ]S=a*b*pi;2 i; L0 s1 O7 Z; C& P- ~; s5 F6 U
    z=S/4/pi/stri;
    , F# D. l: k0 A2 ~" ~3 C% d% 将数据组集到data+ S* K/ c$ b/ n9 b) H% u" A5 H+ `, Z
    data = [xmin',ymin',xmax',ymax',xmid',ymid',a', b', A', B',C',D',E',stri',S',z'];
    7 K& e4 O" k+ c% o9 e% 将data切割成m*n的cell矩阵5 e- t: p$ D/ P  q! L
    [m, n] = size(data);, N3 [, }% ~# e3 h. y
    data_cell = mat2cell(data, ones(m,1), ones(n,1));   ; p; D$ y) L% X- Z
    % 添加变量名称
    ) J& C7 H6 M7 V3 [1 Ltitle = {'xmin','ymin','xmax','ymax','xmid','ymid','a', 'b', 'A', 'B','C','D','E','stri','S','z'};) p7 t- C/ k% u/ J# T2 x' Q' e
    % 将变量名称和数值组集到result. M. F! {! `+ K. M. Q
    result = [title; data_cell];
    , O0 f5 |. F6 q, ~# t% 将result写入到wind.xls文件中% i: x" s+ B" c; @- H% p
    s = xlswrite('wind.xls', result);' q. [9 j: ~' y) i; G

    8 I9 H. q5 W8 \: ~' a0 c8 g2 G4 t5 z  w. W0 _) K% h
    % 作图
    4 g2 E9 q8 M1 l%ezplot(@(x,y)F(p,[x,y]),[xmin,xmax,ymin,ymax]);
    ) I4 G" y$ V* q, ?%title('曲线拟合');4 a. m# R" R: M' ^0 c( E
    %legend('样本点','拟合曲线')

    : k$ o; q" m- A; }% \
    ' p% o& p* w. y4 H, E3 ?

    - J  F# X6 U# J+ I" X/ c# ~: j8 x- W* W

    $ [) |& @0 Z8 |5 z6 }+ h) \' W' |" k  ~% C7 Q- q
    . G; v9 |/ x% ?* E  p
    * @8 Q) ?( ]3 o, S; V' n; W' L
    , r9 C, i$ M! @0 T

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-5 10:23 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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