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

 找回密码
 立即加入
搜索
查看: 2832|回复: 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;$ @( y3 x  v& ]
    2. b=a(find(rem(a,3)==2));6 @4 ^4 Q% Y  W. A  M4 @% g
    3. c=b(find(rem(b,5)==3));
      . k3 s# Y2 D* m' V+ U" T
    4. d=c(find(rem(c,7)==2));5 Q8 V$ `% {* R$ `8 @" [1 n! a0 V
    5. disp('在1——500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数:')* q2 |# E" j: h% h
    6. disp(d)
    复制代码
    在1——500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数:
    2 \, ]$ ]/ k( C  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);
      7 X6 [0 F- f/ m# D# }: a4 j
    2. x=0:0.1:2*pi;5 v% v  e; y/ }) Z- W, b
    3. y1=sin(x);
      " Y+ y6 g$ U9 N' W# D4 S
    4. y2=exp(-x);. w/ O7 m! u) ^$ N, p4 h
    5. plot(x,y1,'--*',x,y2,':o');
      6 y, r7 Y  o  j5 m+ \
    6. xlabel('x=0 to 2\pi');$ ~( z! G# s4 P, c$ V+ G* I
    7. ylabel('values of sin(x) and e^{-x}');' q5 L- Q" ~% S$ [. F
    8. title('function plots fo sin(x) and e^{-x}');0 j: W& S/ K  y$ u% Z
    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)
      $ x$ e1 x; \4 C# Q0 \3 V
    2. 1)x=[-10:1:10];
      ; ]9 ?. ?9 k6 y5 I5 H1 j7 |9 l; Z
    3. for i=1:21% Z  @& V/ o9 i' r
    4. f(i)=(x(i)-1)*(x(i)>1)+(x(i)+1)*(x(i)<-1);
      1 ^! ]6 @, Y( s
    5. end  ~5 h' S7 i+ y- q
    6. plot(x,f,'r*')
      & E' l' j9 \; }
    7. 2)x=[-10:10];5 a1 y; {8 k3 @" o, c) f# u" H
    8. f=zeros(size(x));" j8 B- r, x1 _% g0 p
    9. a=x>1;7 X) T2 q# H$ h# O& D: ~
    10. b=x<-1;, b, ?; t! c. c' c, r1 g) R: U
    11. f(a)=x(a)-1;+ G" O; R2 {" g5 F! H* C3 u
    12. f(b)=x(b)+1;
      3 h/ q& _% O& z# f
    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
    ! X  g' [% }  r- z怎么样把大于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 a7 ]7 ?3 H2 k1 p  h/ O* A
    2. a=rand;  {$ j0 ]; M5 G' t
    3. k=find(x>a);$ k! m) V, ^- Q# [( L
    4. x(k(1))
    复制代码
    Q2: 如何从列矩阵(n*1)中分段截取数据组成新的矩阵?比如用列矩阵a的前k个数据组成一个新的列矩阵b?中间k个呢?
    1. b=a(1:k);
      ' K# [3 c# |+ @* R1 L0 t$ N
    2. b=a(l:l+k); (l+k<=n)! B; C7 _/ s8 y% Z" q
    复制代码
    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');
      + Z- P8 E8 w& S9 Y! ?7 v
    2. if double(x1)>1   
      & \) R5 m8 U; z0 u9 w; S0 z5 `
    3.   x=1
      ; }9 [, Y! F7 o
    4. else   
      9 K; ^* |) o; L5 I
    5.   x=0
      ! E9 r" h. j% ^* ^1 s
    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  i8 N" L0 R/ h) \/ Q  [5 g0 R
    2. x=[1 2 3 4 5 6 7 8 9 10];
      " Q9 t7 t# d* }: R
    3. y=[40 50 60 70 80 90 100 110 120 130 ];, B9 U3 c5 U( G; u& a/ z
    4. str1={'A','B','C','D','E','F','G','H','I','J'};
      1 |8 R9 u. j6 N' z3 K
    5. por=y./sum(y);! e" L& O. v$ g, |9 V  |" Z6 L
    6. for i=1:length(por)   str{i}=[str1{i},' ',num2str(100*por(i)),'%'];3 z9 G) n% r& U) W! q1 c
    7. end
      ( I8 j6 t8 l5 ^
    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.
      A8 m, w( [+ l) lfunction FitPaperData
    ) x* o3 H2 N% l0 Dformat long
      r$ a4 ~( P6 Z( K, Z6 W# J" \E1=rand(89,1);6 y" Z6 S4 j( @- a; h
    E2=rand(89,1)+3;. n1 a9 |' {! d, _
    F=inline('p(1).*x.^p(2)+p(3)','p','x');
    6 F( I2 K9 B7 b! z! {9 X! T[p,r,j]=nlinfit(E1,E2,F,[1,2,3]);! t# S1 f& h% B+ T$ c
    P
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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]) j: ^5 A! m1 Y
    应该怎么做
    0 _# B- N& v: V( ]/ l' A2 ?6 {* H如果各个向量中均无重复元素,提供一个简便的方法
    ; ~; _5 C/ u) N. G7 ?+ z, W% nA=[1 7 6 3 2 9 8];
    . p* D1 l! p, y1 c" R1 N$ U+ Y2 t' A/ @B=[1 6 3 8] ;  ]* L% d% u; p/ d
    setdiff(A,B)
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    慵懒
    2017-7-12 08:29
  • 签到天数: 7 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    累计签到:7 天
    连续签到:2 天
     楼主| 发表于 2009-8-14 22:09:23 | 显示全部楼层
    Q8 内联函数如何部分赋值传参, d2 N0 I) K0 D5 U
    2 @1 k- Q; s' H4 F7 q! V; t8 r, _
    1. tic
      2 m- a0 K4 [4 X, u: a! f
    2. a=rand(1,10);
      . K4 b( O- j4 K- o' o" d& Q
    3. for i=1:length(a): g0 P' U3 K+ T; x
    4. ff=['x.^2+',num2str(a(i))];
      / ]- f+ y; W# i, q; v4 H* |! P
    5. f=inline(ff,'x');9 y3 K( S5 X5 O. W! `+ @
    6. d(i)=quadl(f,-1,1);: ]; D$ u: Q% w' k- m8 u
    7. end
      + d' N) b8 d$ V8 K
    8. d
      & _' g2 O: h/ k% C2 B" s
    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;
    , {/ v2 K( A6 n6 b8 }  Xname = ['temp' , num2str(i), '.txt']; %假设你想把当前工作区的数据存储为temp160.txt;
    5 D0 Q2 f/ Z/ ]eval('save(name)');! p" T% Z( h. D
    7 U% o$ r1 j  a# k0 v7 Z+ v
    具体的请看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]
    9 [/ L! k+ _, ]& d7 _* V/ a如何将NaN以外的8个数加起来,然后求这8个数的平均数。

    3 T: r# K9 W3 ~+ ?0 y+ {-----------------------------------------------------------------
    $ Z0 d: m0 r, [6 H6 P$ z& p% W7 V2 P9 g, s5 C5 j
    >> a=[1 2 3 nan 5 nan 7 8 9 10];  C0 f" s6 A/ S
    >> b=a;  L/ I  P. h  a( O. b2 H
    >> b(find(isnan(a)))=[]8 O7 y  Y( k2 I# C7 r# ~
    * h3 O+ V$ e# T- h6 b; q7 f0 c
    b =* L! k1 o: ~. K) X1 ~, y2 s
    ! Y' {6 u5 s% O. ~
    1 2 3 5 7 8 9 10 . W0 h4 ]  F8 T! f. [4 D
    6 b2 f7 J) N2 Q+ a# `0 C8 g- M. J5 m

    . T# S$ o6 N. h8 B7 M5 @1 Ha=[1 2 3 nan 5 nan 7 8 9 10];
    ) T9 g% y  y/ k0 p$ S& Y) ~6 R& u简洁些可以这样:7 j9 C, o; N- s- O) D% q  ]" _
    mean_a=mean(a(~isnan(a)))
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2026-3-18 13:04

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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