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

 找回密码
 立即加入
搜索
查看: 2912|回复: 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;
      ' ~3 ~) y5 @: l1 v1 o. {
    2. b=a(find(rem(a,3)==2));
      , i' G" u2 V7 L
    3. c=b(find(rem(b,5)==3));
      7 {4 S  p. E' L4 T
    4. d=c(find(rem(c,7)==2));4 e& V: E% P/ D; y6 [9 W$ W
    5. disp('在1——500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数:')
      / X; U4 V9 z" I- s8 @( D5 q3 V
    6. disp(d)
    复制代码
    在1——500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数:
    ; e- J4 ?5 Q7 j; ?4 C3 e- r0 T  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);
      + O. N5 P+ K! k; q. l: X' _
    2. x=0:0.1:2*pi;3 l8 h3 n; G  G1 V6 q5 O7 _! n
    3. y1=sin(x);
      * B& x5 q/ m3 @% Y5 t3 c* R5 k. b
    4. y2=exp(-x);  ~8 e6 V9 r3 d3 U2 i) z: ?' `
    5. plot(x,y1,'--*',x,y2,':o');: ^- `7 C" W% ~/ z4 l$ R+ T0 r  x
    6. xlabel('x=0 to 2\pi');( i% ^. k% G: o- d
    7. ylabel('values of sin(x) and e^{-x}');) C: a& \5 m" z0 p
    8. title('function plots fo sin(x) and e^{-x}');4 I0 V; d  q) @( V! K* T
    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)" p  k+ K- I' W; c
    2. 1)x=[-10:1:10];
      - r& N3 i- L. S. F
    3. for i=1:214 M, X, i+ s6 _/ \' R, k# @8 K- A
    4. f(i)=(x(i)-1)*(x(i)>1)+(x(i)+1)*(x(i)<-1);' Y: Y" n: M- O; }& c+ Z4 l
    5. end
      + F/ K3 [8 H" B
    6. plot(x,f,'r*'): P# N# O* l9 T2 g& [  D$ w
    7. 2)x=[-10:10];2 @1 I% |1 T9 M0 x! z* D
    8. f=zeros(size(x));
      " j. d% M' g# q- F. ]- {- f
    9. a=x>1;
      & }* j$ z5 U' j& D. }9 }
    10. b=x<-1;
      " `# t3 f' Z% e4 p4 z. n5 U: C
    11. f(a)=x(a)-1;3 c1 f) G* D* V- M3 u0 [) Q# d% Y
    12. f(b)=x(b)+1;
      , R" q; B. v9 m. u0 T* u8 @# A# k
    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 ! H$ j4 U( ?5 W) {) e+ q
    怎么样把大于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]'
      1 R, e8 V" S6 ~
    2. a=rand;
      ; E: E* [/ m% C: y- Q" c
    3. k=find(x>a);; g. F& t+ k# N4 r
    4. x(k(1))
    复制代码
    Q2: 如何从列矩阵(n*1)中分段截取数据组成新的矩阵?比如用列矩阵a的前k个数据组成一个新的列矩阵b?中间k个呢?
    1. b=a(1:k);
      ) c% [" U* w8 `. \6 a
    2. b=a(l:l+k); (l+k<=n)# t; p) @2 E8 \
    复制代码
    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');# ]3 _- T; C' T8 J
    2. if double(x1)>1   2 x/ H. _3 N" F5 i9 a' W
    3.   x=1& D! }# h1 |4 {& q' V8 r! o
    4. else   
      + m! z% d; L+ a' G# ^
    5.   x=0
      1 A) H% y& H' B4 w! [; ], O
    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
      . R  A* a( Z$ t: A6 f
    2. x=[1 2 3 4 5 6 7 8 9 10];% {" f. {7 @: U, T* |3 W' f
    3. y=[40 50 60 70 80 90 100 110 120 130 ];+ H5 R$ Z1 o7 W2 @) W; \1 j$ |; M
    4. str1={'A','B','C','D','E','F','G','H','I','J'};
      ; G6 s4 X6 A. @3 N
    5. por=y./sum(y);8 M, R; g& w; [' E
    6. for i=1:length(por)   str{i}=[str1{i},' ',num2str(100*por(i)),'%'];
      ( ^* _  o+ l! C4 O; Q# f
    7. end$ l8 j$ N: p! r" v
    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.. M( f7 G) g& q, M& z6 Z' f: c
    function FitPaperData( v3 F8 G' q4 X( h6 r1 t% @
    format long
    9 o% _% D, R6 W; EE1=rand(89,1);$ z( A6 F7 g! C3 M7 X# e( h& T6 K
    E2=rand(89,1)+3;
    ( H& K2 o) e8 X) ~! c5 c& N6 _9 @F=inline('p(1).*x.^p(2)+p(3)','p','x');
    3 |5 X% N5 n9 Y" ~[p,r,j]=nlinfit(E1,E2,F,[1,2,3]);
    * l; H( _( t5 \/ FP
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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]
    # A8 O( k* v  P0 U* z6 I; v$ c6 D应该怎么做
    7 O8 V. L+ n4 H! t, \; f3 X: E2 w如果各个向量中均无重复元素,提供一个简便的方法% l  J* g: Z- `7 p# S4 T# x3 N8 N) S
    A=[1 7 6 3 2 9 8];/ {9 f& E2 _' X8 A$ ~" z4 }
    B=[1 6 3 8] ;: W' {% Y2 d7 S/ b% z( D8 U+ K
    setdiff(A,B)
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    慵懒
    2017-7-12 08:29
  • 签到天数: 7 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    累计签到:7 天
    连续签到:2 天
     楼主| 发表于 2009-8-14 22:09:23 | 显示全部楼层
    Q8 内联函数如何部分赋值传参
    - P, v- I: q: e5 J$ Y* \( T, D3 o) K3 M) w( s/ B
    1. tic
      5 N/ Z, r/ }8 Y* Q
    2. a=rand(1,10);% n3 \9 i$ s, O5 z  s
    3. for i=1:length(a)0 q) `3 t* X- I4 u+ H
    4. ff=['x.^2+',num2str(a(i))];3 a) w( W3 R$ `  ^
    5. f=inline(ff,'x');
      5 x3 K% F0 `3 o9 I  V% g
    6. d(i)=quadl(f,-1,1);; k1 Y. o4 m6 }5 H; L& C
    7. end
      ( k" |0 X2 P% G. D7 f# }: z1 _
    8. d
      . f! ^$ b6 Q- S0 L( O7 h1 D
    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;
    $ z, E0 ~. d6 T( P! j3 [8 h! Vname = ['temp' , num2str(i), '.txt']; %假设你想把当前工作区的数据存储为temp160.txt;# L# W8 a$ J/ R$ o  v+ K
    eval('save(name)');
    ( @7 ?" |' P9 g! c2 A( ]  R
    # u4 p, z' ]- {) _- {7 Y3 a( L具体的请看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]5 ~) E" a, |8 d
    如何将NaN以外的8个数加起来,然后求这8个数的平均数。
    9 k9 _# w( m% `. u; V
    -----------------------------------------------------------------  A* s, ~# ~1 W- O
    % b& x& E4 _: F& C* g
    >> a=[1 2 3 nan 5 nan 7 8 9 10];% G, U% Y  C9 I1 d( p
    >> b=a;
    4 |/ ]6 u9 ^. k* F  X5 Z>> b(find(isnan(a)))=[]
    8 m5 I% [" b2 p8 ~1 ]9 s# n! M" x, K$ |, x
    b =8 n) U' h6 N& N0 D

    5 \5 l; T9 z+ Y4 G9 M1 2 3 5 7 8 9 10
    % z) s! N! g2 X4 b2 {$ w2 z8 _# C2 K

    - J. ]) G7 W; I8 I. w& d. Qa=[1 2 3 nan 5 nan 7 8 9 10];* j% b$ y7 h/ h
    简洁些可以这样:/ p+ B! I: B% I
    mean_a=mean(a(~isnan(a)))
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2026-4-30 14:24

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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