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

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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x

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

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

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

    % s) a/ d! u( `" V6 N: W, b) g$ p4 W


    ' r* ?# a! z2 s
    & R% k" ~, m0 m- u/ q) o x = [4.1441    0
    ) b! D6 }8 n) f5 c4.4684  0
    + ^% W; s' i( G! H5.7308  0.0023 N2 s" n: e$ O- R$ ~0 Y( P, c4 D- @
    9.4417  0.00420 A3 T% w( Z) d; I
    11.6335 0.0059
    $ |8 F! m+ k$ H# D: }+ Y13.4882 0.0073
    4 Q% S# C, @. p! B3 D: c; f0 q2 |14.247  0.00783 u1 _. l' d  J
    14.6688 0.008
    # h8 {$ {5 }2 e) \) @7 }% s13.7427 0.0068. F. g& ]/ V. n5 R
    11.8059 0.0044& b7 n0 M6 g7 ?( R8 h1 |
    8.6033  0.0015
    $ a9 N& Z( f: R5.2315  -0.0013
    ' T6 |( E4 z7 T" f2 v# ~1 i1.6184  -0.0036
    6 `4 j3 J  Q% j-0.8267 -0.00552 t0 A- _9 c$ b# n/ D
    -3.5249 -0.00768 h$ M5 y, ~& P% m: |
    -5.0424 -0.00895 ^# X0 @) U5 d) ^
    -5.97   -0.0096" q( j0 o& \/ a  ^& {, T4 S* u
    -5.9694 -0.00995 ^! n' p; m. V5 u
    -5.5492 -0.0089
    % y: N" [  y- ~9 `-3.0212 -0.0062, i4 @! D+ x4 {4 B8 J; `' u
    -0.4088 -0.0035];( r0 P, B" O$ E2 Q' \
    %  p0=[1 1 1 1 1 1];) y& a) x% z  [" m8 K. d
      p0=[0.005 0.005 0.005 0.005 0.005 0.005];
    5 |* b# t, S' mwarning off$ ?- r3 E' k5 Q. P( A  z9 t
    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);
    * s' _) C  m0 k. e5 x% 拟合系数,最小二乘方法
    * k/ w' S; I* N# o5 J$ @+ M8 Op=nlinfit(x,zeros(size(x,1),1),F,p0);$ R9 [! }* h  v$ w
    p(1)- H4 W4 y' T( E$ Q% j' }* |
    p(2)
    - D* t$ g0 G  S$ pp(3)
    & g* r' Z3 a8 ~- Y7 Lp(4)" E' A) [, E5 g) o8 s! T1 j: b9 R
    p(5)* K; p$ Q5 w, N5 _9 c& X0 e: [* \7 B
    p(6)+ \/ B8 j2 x3 G$ t9 y! R

      ?" @3 h& b9 F# f1 Z' K- W: m2 W9 ^  a
    2 x0 j# @' \2 U1 s' wA=p(1)/p(6);, o2 {  g9 n& g6 k
    B=p(2)/p(6);
    ) {% F' m5 v( n- |. R; L8 nC=p(3)/p(6);: x+ ~/ s, R7 ^2 P, N" _4 A) W
    D=p(4)/p(6);) ^4 t0 v$ t, K/ c( k8 b# T- F
    E=p(5)/p(6);* w# w* ]5 b3 S8 N( c

    3 Y  F2 a; L6 x8 H
    " l% w9 Q  G* ?! a0 Z! L%%椭圆中心% g2 j, A! v. Q- M" N: G
    X_center = (B*E-2*C*D)/(4*A*C - B^2);2 i" b( R: c$ p: ]
    Y_center = (B*D-2*A*E)/(4*A*C - B^2);* J4 x1 g" ^- ^& e1 a6 L
    fprintf(' X_center=%g, Y_center=%g\n',X_center,Y_center);
    , z( Y) A' x. v! W  x/ u%%长短轴
    9 U" V) \" s5 S/ n& x* D' La= 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))));
    4 Y3 v4 @  ~  j$ |- i# `# Rb= 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 M; h: L3 `- t. H
    5 ?/ {5 m/ P' q* L0 Z* J2 Q% O+ A
    1 Y4 J  T1 o( c  m8 m9 k%%长轴倾角
    8 p  e# Y5 b1 W8 kq=0.5 * atan(B/(A-C));
    9 b! ?9 f9 a) Afprintf(' q=%g\n',q);
    9 U  A) N% a! m, M$ O8 Q
    * G3 O% c- n  w3 V4 C* z' y1 z; p8 ^2 j. @
    fprintf(' a=%g, b=%g\n',a,b);; n3 l/ J7 q# J- I/ y: z
    plot(x(:,1),x(:,2),'ro');
    ' Q; {+ M2 w5 `
    & T. G! ?$ i3 e8 I) B2 |! F7 ~+ T! d: v* j- n
    hold on;, w( V2 B8 F0 f! k
    xmin=min(x(:,1));  z: i2 `2 H+ K
    xmax=max(x(:,1));) r. ]* S' ~& M: M# m
    ymin=min(x(:,2));
    ; R8 j; ~* q9 X+ v/ `ymax=max(x(:,2));; t% m8 ~" s, A: R
    xmid=(xmax+xmin)/2;
    ( _+ K+ X4 A  D& h: A3 ~& }ymid=(ymax+ymin)/2;
    3 ~( N1 w2 ?( ^$ v0 g4 wstri=(xmax-xmid)*(ymax-ymid)/2;
    * ]4 I$ r+ z( z0 i( G. TS=a*b*pi;
    ) e; G1 w1 C- f7 l4 e6 Cz=S/4/pi/stri;
    ) B3 e( V! q/ e% 将数据组集到data
    8 D2 p3 Q( v* z  g) K/ i0 gdata = [xmin',ymin',xmax',ymax',xmid',ymid',a', b', A', B',C',D',E',stri',S',z'];
    2 F1 g; w6 o  p% r) a6 ]% 将data切割成m*n的cell矩阵! b& f  Q$ Y1 X- Q
    [m, n] = size(data);
    $ ~6 _9 z+ E# v4 t* rdata_cell = mat2cell(data, ones(m,1), ones(n,1));   
    , W8 t% r% U$ ^) y/ z$ D# F% 添加变量名称
    ' K! M3 W. \( N4 Etitle = {'xmin','ymin','xmax','ymax','xmid','ymid','a', 'b', 'A', 'B','C','D','E','stri','S','z'};% o0 Y6 i( N3 N9 Y9 E# \/ T# [
    % 将变量名称和数值组集到result. \5 ?, u) y9 Y1 |! n
    result = [title; data_cell];6 h" D1 z! ~0 \
    % 将result写入到wind.xls文件中
    5 {4 `! v3 H' R/ Z4 u2 p4 F) R% e2 Ps = xlswrite('wind.xls', result);
    8 Q9 A! n) r# X: ^+ }
    / I  H/ U6 q, i$ I. Q1 j$ G$ z8 \; u" q6 b" G' B
    % 作图
    1 r: V) o. ^8 h) J# A%ezplot(@(x,y)F(p,[x,y]),[xmin,xmax,ymin,ymax]);
    ' d  s2 h: s8 H%title('曲线拟合');
    / S* R! N$ Y3 G! G) A8 w9 N" i%legend('样本点','拟合曲线')

    9 A% l* L, s& M$ z

    # b/ K  a) r0 S6 Y
    ; x9 r4 M  V1 ^: z* e8 [
    2 u. s2 M8 ]3 g$ I* N9 n* I- S
    + {& Z$ W4 {! f. e. T- D% `. q

    ' ?; D' C5 _2 [5 R  p2 Z
    ) `, F. B+ P8 M/ e3 L0 B$ L! l

    8 k8 X6 g0 ]0 _8 S! N& v' R

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-29 10:21 , Processed in 0.203125 second(s), 27 queries , Gzip On.

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

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

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