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

 找回密码
 立即加入
搜索
查看: 3060|回复: 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;% Y7 P. K! O  h  `. u4 B
    2. b=a(find(rem(a,3)==2));. x7 c, ^* s. ^: _; P
    3. c=b(find(rem(b,5)==3));  L+ G  ~% s: f; x1 y5 V- O/ V
    4. d=c(find(rem(c,7)==2));* V6 A2 @7 `7 I* T( B  I
    5. disp('在1——500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数:')8 k7 ~* {; P4 E4 g) q7 ]
    6. disp(d)
    复制代码
    在1——500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数:
    / A2 t& K4 M4 Y+ t$ E  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);
      + X. r0 s6 ^7 _% [
    2. x=0:0.1:2*pi;9 N# ~+ F# G# v- `- t( @( ~7 J0 B
    3. y1=sin(x);
      % R2 ^0 r9 G8 M% D% j
    4. y2=exp(-x);
      8 t" u- l* `. y
    5. plot(x,y1,'--*',x,y2,':o');
      5 [6 N* ^# k, u9 y
    6. xlabel('x=0 to 2\pi');& Q3 C) F) E$ E9 [  F" W: m  c; H
    7. ylabel('values of sin(x) and e^{-x}');
      : d" [5 r7 m9 r* B' ^
    8. title('function plots fo sin(x) and e^{-x}');
      6 K7 K8 \" ^1 j+ O7 V
    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)
      $ r8 h- K' O* H  c& T* s
    2. 1)x=[-10:1:10];4 |9 a+ T, ~% P6 H6 T2 O. X
    3. for i=1:217 v/ f) W# |' ^5 y1 N9 v9 W5 r
    4. f(i)=(x(i)-1)*(x(i)>1)+(x(i)+1)*(x(i)<-1);$ o# o# w1 F) B5 d3 H; A5 t
    5. end
      ' g$ Y2 o8 s2 K1 Q  s# x2 E
    6. plot(x,f,'r*')% _7 l# G; z& b6 R
    7. 2)x=[-10:10];
      + F) D, l2 Y. D' E( U
    8. f=zeros(size(x));* d1 r6 t4 Q4 n5 W8 s: a) K
    9. a=x>1;% [/ A8 }! x- R/ s8 v  K
    10. b=x<-1;
      3 U' d# E% E! v- j- x
    11. f(a)=x(a)-1;, n( T) T6 m4 }7 _# \
    12. f(b)=x(b)+1;
      8 n$ k8 A7 \2 f9 \5 n+ G
    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 0 J  X% c8 m% f9 \
    怎么样把大于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]' / t& F9 N' N, ^0 H0 X6 a" y7 L
    2. a=rand;. |8 B! i2 _% l. j
    3. k=find(x>a);
      + m3 P; B  p0 P: {" k$ Q4 [, x
    4. x(k(1))
    复制代码
    Q2: 如何从列矩阵(n*1)中分段截取数据组成新的矩阵?比如用列矩阵a的前k个数据组成一个新的列矩阵b?中间k个呢?
    1. b=a(1:k);5 N' h2 f% L' J! }4 |
    2. b=a(l:l+k); (l+k<=n)
      . U8 P$ \6 v4 z! X
    复制代码
    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');" t% b9 b; Y0 b: X% R+ B- m7 Q
    2. if double(x1)>1   
      ! B0 x3 U3 Q2 d7 H9 T* ~0 ^, B
    3.   x=1/ }9 _/ P8 I0 f# f
    4. else   
      ) o/ r" p4 r2 _: D& ]" t3 I9 s& g! e
    5.   x=0& g0 Z- z3 J( T% J6 m4 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
      $ a2 D4 d& r' T% m( w+ u: L- Q
    2. x=[1 2 3 4 5 6 7 8 9 10];
      5 y: m3 ~( |; }2 G; i
    3. y=[40 50 60 70 80 90 100 110 120 130 ];
      7 W' i$ ]# ]$ W6 ^
    4. str1={'A','B','C','D','E','F','G','H','I','J'};# c( n& ]" ?- i8 [3 r8 _% u( G3 I( d
    5. por=y./sum(y);0 J  {2 a5 R  I! t
    6. for i=1:length(por)   str{i}=[str1{i},' ',num2str(100*por(i)),'%'];% f7 J; I  ~2 D6 p+ b
    7. end
      + i5 q3 e3 u6 f3 j! d2 D8 R  T
    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.
    # c+ {. ^5 Q! w2 b  I/ ^function FitPaperData, P7 E) G7 o6 K4 r& U
    format long
    - ^3 R, r2 e2 c& u# Y  |9 fE1=rand(89,1);
    : x2 d4 x9 C: q1 Y  ~. V" x: KE2=rand(89,1)+3;) [7 c! O1 K9 f6 F3 c8 E! O
    F=inline('p(1).*x.^p(2)+p(3)','p','x');  s) f$ w8 @8 C. B: k2 U$ r# G3 r- h
    [p,r,j]=nlinfit(E1,E2,F,[1,2,3]);% a# _2 X' F/ Z* o( P( M- d$ y
    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]0 T9 ?& v- p& m% P3 L
    应该怎么做
    ) S, w8 l7 R5 I7 c" ^, K如果各个向量中均无重复元素,提供一个简便的方法, a8 V* M  D- x7 m6 @
    A=[1 7 6 3 2 9 8];+ y3 u$ c8 Y% i. N8 a7 Y% {* ?  {
    B=[1 6 3 8] ;9 K7 u' O, l4 N9 F, o- i% V/ k
    setdiff(A,B)
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    慵懒
    2017-7-12 08:29
  • 签到天数: 7 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    累计签到:7 天
    连续签到:2 天
     楼主| 发表于 2009-8-14 22:09:23 | 显示全部楼层
    Q8 内联函数如何部分赋值传参+ ]' }, k% G9 o, K5 z
    $ ~6 Q. Y! W' z1 |
    1. tic
      4 t2 t7 L# _4 w! S
    2. a=rand(1,10);* \- U) H/ V. |( `2 }
    3. for i=1:length(a)* D5 A& i) G' K, N
    4. ff=['x.^2+',num2str(a(i))];
      0 J4 @6 x4 `; g/ T0 A  F
    5. f=inline(ff,'x');
      & g/ l. b( L- y8 T
    6. d(i)=quadl(f,-1,1);
      ( m$ X( C8 J1 s6 s# f$ b7 c
    7. end- m7 f2 q" g0 S* @- h. z0 S
    8. d
      4 m3 b% o- G  n8 H5 s" l( |! D5 f
    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;
      d5 v7 s% k: m" Y8 `name = ['temp' , num2str(i), '.txt']; %假设你想把当前工作区的数据存储为temp160.txt;4 t) ~, V  X, p6 i5 G; Y  D
    eval('save(name)');
    . n3 V0 y5 i' V9 ?
    $ D. M% ]7 P& I; c' C具体的请看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]
    6 ~) m; H2 ]! y& d( p) r如何将NaN以外的8个数加起来,然后求这8个数的平均数。

    3 V! r# M, _* x# Y-----------------------------------------------------------------6 l" j! X% J" x1 m8 X
    : C: h# d) ^3 X  x4 g1 ?$ L
    >> a=[1 2 3 nan 5 nan 7 8 9 10];
    5 n& \: G) M$ r5 y7 ?>> b=a;
    / H) G" Q9 U! h) e8 Q" S>> b(find(isnan(a)))=[]
    6 ^/ ~, W+ K" \9 N& i. T7 E- b. {4 [) j' {# B1 S5 j3 A
    b =
    - V0 ]! @! I& v3 e2 _! _; e$ |/ O9 r( d$ B: k; Z. P" \: f
    1 2 3 5 7 8 9 10
    4 T; s/ ?& X1 e: L. J" l9 l# r  ^" s2 Y
    * x0 t4 B7 |8 V$ Y; H5 h1 Y7 `. F% m+ \  H. Z  f$ K6 b3 }- h
    a=[1 2 3 nan 5 nan 7 8 9 10];& h8 i3 z2 s, E1 E  E% F  M
    简洁些可以这样:1 c. q0 O0 w! d+ `6 }
    mean_a=mean(a(~isnan(a)))
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2026-10-24 15:41

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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