设为首页收藏本站|繁體中文 快速切换版块

 找回密码
 立即加入
搜索
查看: 3062|回复: 11

【转载】matlab 学习点滴

[复制链接]
  • TA的每日心情
    慵懒
    2017-7-12 08:29
  • 签到天数: 7 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    累计签到:7 天
    连续签到:2 天
    发表于 2009-8-14 21:59:46 | 显示全部楼层 |阅读模式

    马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!

    您需要 登录 才可以下载或查看,没有账号?立即加入

    ×
    在1——500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数;
    1. a=1:500;: C8 ^* p/ Y, d" |1 e  ~8 B
    2. b=a(find(rem(a,3)==2));3 g% F9 \: G, n; E
    3. c=b(find(rem(b,5)==3));
      , d; M" G! l' ]8 ?! D  G
    4. d=c(find(rem(c,7)==2));: p# y) g5 j; D! R9 l' s
    5. disp('在1——500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数:')
      6 I% J" X7 E: i5 n' V& A9 i2 F4 }9 ~
    6. disp(d)
    复制代码
    在1——500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数:! t$ J2 }1 l3 A3 U# h& y
      23   128   233   338   443
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    楼主热帖
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    慵懒
    2017-7-12 08:29
  • 签到天数: 7 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    累计签到:7 天
    连续签到:2 天
     楼主| 发表于 2009-8-14 22:01:57 | 显示全部楼层
    matlab上标标注
    1. subplot(1,1,1);
      . `: F+ [7 `# }' W
    2. x=0:0.1:2*pi;1 m! _9 W+ X6 ?: v6 F
    3. y1=sin(x);% X4 k1 y6 k/ f6 K' A- y  v, M& s
    4. y2=exp(-x);
      9 k5 d5 F  Y& @' F# X
    5. plot(x,y1,'--*',x,y2,':o');
        `5 q# \0 L" b* k& R
    6. xlabel('x=0 to 2\pi');
      : k4 K6 b7 c  p4 }2 E3 t5 ], g) H
    7. ylabel('values of sin(x) and e^{-x}');  L/ l; g+ e$ C% l3 V' i6 Y7 s
    8. title('function plots fo sin(x) and e^{-x}');! I+ T! f& b3 z) N
    9. legend('sin(x)','e^{-x}');
    复制代码
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    慵懒
    2017-7-12 08:29
  • 签到天数: 7 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    累计签到:7 天
    连续签到:2 天
     楼主| 发表于 2009-8-14 22:02:46 | 显示全部楼层
    请问在matlab里面怎么把一个三段的分段函数表示出来呢
    1. f(x)=x-1 (x>1);f(x)=0 (abs(x)<1);f(x)=x+1 (x<-1)
      : Y$ j; \& g& I: q7 f
    2. 1)x=[-10:1:10];
      1 ~& L- l/ c6 u5 z5 U' p; ?
    3. for i=1:21; `3 o" h3 a5 L( Q* h8 N6 c* J* l
    4. f(i)=(x(i)-1)*(x(i)>1)+(x(i)+1)*(x(i)<-1);
      ! j( h' e' B2 V' n) t' [
    5. end5 L# @& n, k0 j0 N, Y. Y5 K
    6. plot(x,f,'r*')* ]1 L! l& {3 M3 ]' H. q
    7. 2)x=[-10:10];
      % A& E( q" {6 x7 z) e. N
    8. f=zeros(size(x));2 \' F9 V2 S. c5 X9 @% K
    9. a=x>1;. ]+ g0 E+ q+ Y! ]$ [. g
    10. b=x<-1;- y* [2 n2 }. U) h- R- @) B. ]' u
    11. f(a)=x(a)-1;
      ! i( Z0 n7 A) V
    12. f(b)=x(b)+1;2 ~* F8 V7 s4 M( C! H
    13. 3)f(x)=(x-1).*(x>1)+0.*(abs(x)<1)+(x+1).*(x<-1)
    复制代码
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    慵懒
    2017-7-12 08:29
  • 签到天数: 7 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    累计签到:7 天
    连续签到:2 天
     楼主| 发表于 2009-8-14 22:06:27 | 显示全部楼层
    Q1: 对于x = [0.1200 0.2400 0.3600 0.5800 0.6600 0.7400 0.8100 0.8700 0.9100 1.0000]' 随机产生一个数a = rand 7 h( _4 Y8 L5 V* e( B
    怎么样把大于a的第一个x(i)选出来?
    1. x = [0.1200 0.2400 0.3600 0.5800 0.6Q600 0.7400 0.8100 0.8700 0.9100 1.0000]'
      : i: ?- [4 z* o0 W
    2. a=rand;/ D8 v' d* w) e4 p4 G0 y5 G
    3. k=find(x>a);
      ' t+ B0 I1 c5 l$ `8 L
    4. x(k(1))
    复制代码
    Q2: 如何从列矩阵(n*1)中分段截取数据组成新的矩阵?比如用列矩阵a的前k个数据组成一个新的列矩阵b?中间k个呢?
    1. b=a(1:k);
      ) b# g: K/ y, b+ F
    2. b=a(l:l+k); (l+k<=n)
      " i. m5 U# X% l1 _8 y) H
    复制代码
    Q3: [1,2,3,NaN,5,NaN,7,8,9,10]如何将NaN以外的8个数加起来,然后求这8个数的平均数。
    1. mean_a=mean(a(~isnan(a)))
    复制代码
    Q4 matlab里面怎么将符号常数变为数值
    1. syms x;x1=solve('x+1=2','x');
        @, ?9 U# E- m) v4 v) w
    2. if double(x1)>1   3 B; `7 z- \0 {: `
    3.   x=1, i/ ]- j9 Q" S9 R
    4. else   
      ( U+ `, i4 U* c" r1 E
    5.   x=03 B. z' d7 p# e$ Q( E7 u
    6. end
    复制代码
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    慵懒
    2017-7-12 08:29
  • 签到天数: 7 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    累计签到:7 天
    连续签到:2 天
     楼主| 发表于 2009-8-14 22:07:12 | 显示全部楼层
    Q5: MATLAB中用pie命令画饼图
    1. function PlotPie/ w5 O! B# i6 D5 X/ |. Z+ s
    2. x=[1 2 3 4 5 6 7 8 9 10];
      + d8 u. w# i" X' `  U) G
    3. y=[40 50 60 70 80 90 100 110 120 130 ];
      9 W: H' ?- N7 l0 b/ S( V% b
    4. str1={'A','B','C','D','E','F','G','H','I','J'};
      9 x  U8 x7 b3 ~5 A
    5. por=y./sum(y);
      , d' r7 ?* X9 o0 @$ }( G
    6. for i=1:length(por)   str{i}=[str1{i},' ',num2str(100*por(i)),'%'];
      7 \3 e0 [  B5 e; {) [" F
    7. end% s0 D  T$ I4 G1 w% e7 h' f: k
    8. pie(x,y,str)
    复制代码
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    慵懒
    2017-7-12 08:29
  • 签到天数: 7 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    累计签到:7 天
    连续签到:2 天
     楼主| 发表于 2009-8-14 22:07:38 | 显示全部楼层
    Q6 非线性拟和y=a*x^b+c的程序,求a,b,c.
      [: r# O/ v0 w$ K/ K0 tfunction FitPaperData
    9 A% ]# v$ Z4 ]% nformat long" [" X5 c, K/ q% r# [, s# B
    E1=rand(89,1);8 J* m0 [7 M4 v4 p' W+ n
    E2=rand(89,1)+3;0 a5 s$ u0 U! a8 Q4 n; J
    F=inline('p(1).*x.^p(2)+p(3)','p','x');
    7 r0 O* N9 q' g& H/ I- p[p,r,j]=nlinfit(E1,E2,F,[1,2,3]);
    6 w3 S! ~1 D  [5 L+ b* wP
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    慵懒
    2017-7-12 08:29
  • 签到天数: 7 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    累计签到:7 天
    连续签到:2 天
     楼主| 发表于 2009-8-14 22:08:21 | 显示全部楼层
    Q7 已知向量A=[1 7 6 3 2 9 8];B=[1 6 3 8] ;如果我想把向量A中与向量B中相同的元素清除掉,例如最后得到C=[7 2 9]
    & ^* n/ n6 Z7 s2 w2 r  \8 E8 d  y应该怎么做- W1 ~( t: O+ T  c
    如果各个向量中均无重复元素,提供一个简便的方法. D! ^2 d  d3 P  ~
    A=[1 7 6 3 2 9 8];
    * k0 z9 f3 G7 g% {" nB=[1 6 3 8] ;2 K4 n$ N8 j: Q' I6 B$ j
    setdiff(A,B)
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    慵懒
    2017-7-12 08:29
  • 签到天数: 7 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    累计签到:7 天
    连续签到:2 天
     楼主| 发表于 2009-8-14 22:09:23 | 显示全部楼层
    Q8 内联函数如何部分赋值传参; |" L& D! `$ k# o" }# p3 u/ s

    $ }' N; @& \9 e
    1. tic
        X' g9 s* q1 x. Y2 e
    2. a=rand(1,10);& V$ c) P, C- Q# z5 M
    3. for i=1:length(a)( A7 c9 i9 W, K0 ], D* d
    4. ff=['x.^2+',num2str(a(i))];% A; @' k0 I( ], I& {( x
    5. f=inline(ff,'x');2 m8 B8 `  o6 a2 d
    6. d(i)=quadl(f,-1,1);
      # q1 x8 G  P2 m6 A
    7. end3 F+ D' w9 G! X
    8. d) L) B& p5 k) a7 X
    9. toc
    复制代码
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    慵懒
    2017-7-12 08:29
  • 签到天数: 7 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    累计签到:7 天
    连续签到:2 天
     楼主| 发表于 2009-8-14 22:10:13 | 显示全部楼层
    Q13 我想写一个函数,输入参数是一个字符串比如是"160",函数主要目的是完成数据存储,我现在的问题是存储文件时,文件命名的问题,比如我想把输入的参数作为文件名的一部分,比如希望输出的文件名为"temp160",这个该怎样实现啊,谢谢!!!i = 160;
    4 q) s1 V* l& R: f3 j8 F% _3 nname = ['temp' , num2str(i), '.txt']; %假设你想把当前工作区的数据存储为temp160.txt;5 z1 s1 z0 z3 n$ p, q
    eval('save(name)');9 @  R: n- X/ x
    7 F7 M2 O. M' n) o9 B. q
    具体的请看eval save fopen fread fwrite fprintf等函数的帮助
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    慵懒
    2017-7-12 08:29
  • 签到天数: 7 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    累计签到:7 天
    连续签到:2 天
     楼主| 发表于 2009-8-14 22:10:50 | 显示全部楼层
    Q10 [1,2,3,NaN,5,NaN,7,8,9,10]
    7 Q, |8 O* j% a- b' T: \' ?* Q如何将NaN以外的8个数加起来,然后求这8个数的平均数。

    9 }9 j7 m( ]% A8 s-----------------------------------------------------------------
    ' j' u- l; K1 t# u% X7 p2 m0 `( a+ A, y8 O) Q
    >> a=[1 2 3 nan 5 nan 7 8 9 10];+ w1 \. P; |% u+ ?( D
    >> b=a;
    3 P0 |" k5 l& u9 B& Y" r; {>> b(find(isnan(a)))=[]
    * n& `. r& N" u- `) ~) m. O, O# O9 E4 s6 n8 ^0 t3 y
    b =
    9 v  G! o" y* O, T6 {$ l. M
    ' s& t7 V' V! b' j; E1 2 3 5 7 8 9 10 8 Z1 l' Z* p# I) v, e# @: k

    # t; j# x/ e# c+ U
    & l# T, ?* i$ ^1 n) _. ja=[1 2 3 nan 5 nan 7 8 9 10];
    ! ~& x( W' u2 Z, v7 M简洁些可以这样:
    1 U9 Q2 z# i( j; c  D  S( dmean_a=mean(a(~isnan(a)))
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

    小黑屋|手机版|APP下载(beta)|Archiver|电力研学网 ( 赣ICP备12000811号-1|赣公网安备36040302000210号 )|网站地图

    GMT+8, 2026-10-24 22:13

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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