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

 找回密码
 立即加入
搜索
查看: 2640|回复: 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;: N8 ?! |' J, O9 j0 B+ T, h
    2. b=a(find(rem(a,3)==2));/ V' Z' |) O3 M% c' q0 ^3 F# l
    3. c=b(find(rem(b,5)==3));) q/ O. @9 ~4 J+ ?/ I0 n
    4. d=c(find(rem(c,7)==2));
      . c5 }" Z5 m+ a) o1 y
    5. disp('在1——500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数:')
      9 m( E* M' o; |7 C: u& @
    6. disp(d)
    复制代码
    在1——500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数:& q2 J$ i- r) v9 a$ M# 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);' v+ Z3 O' c& A! l
    2. x=0:0.1:2*pi;9 ^) S" d' V% d; q+ A3 X2 t
    3. y1=sin(x);8 M5 o- F: l3 c* a% R
    4. y2=exp(-x);
        N( k* W- k8 C2 h
    5. plot(x,y1,'--*',x,y2,':o');
      - D. U$ |* e5 O) L  f
    6. xlabel('x=0 to 2\pi');6 I) ^* B9 _% {. Z' r
    7. ylabel('values of sin(x) and e^{-x}');7 A2 K% G2 F' \& P2 C8 [/ N
    8. title('function plots fo sin(x) and e^{-x}');) }+ M: [6 D4 `2 v$ a6 M, C
    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)
      5 K( T% P: ~6 X6 p$ F7 E/ V4 W
    2. 1)x=[-10:1:10];
      ; ?8 X+ _8 D" B. n
    3. for i=1:21: F7 ]2 U' {5 R4 m! \, G
    4. f(i)=(x(i)-1)*(x(i)>1)+(x(i)+1)*(x(i)<-1);. e) r! `; A. R, ?
    5. end
      4 x, |0 N- T, W4 _# V. b0 j
    6. plot(x,f,'r*')
      ) i4 @; y* e# N# e  C
    7. 2)x=[-10:10];  _1 g7 n  c8 x! W$ U/ f/ Q
    8. f=zeros(size(x));( I( j: v. k4 p% Z+ X6 w
    9. a=x>1;
      1 p8 F4 `5 h7 |  C8 U; S
    10. b=x<-1;! {) f  a; t+ W2 B
    11. f(a)=x(a)-1;" W+ i  \; K) V& w% f
    12. f(b)=x(b)+1;! Y5 r5 c: H( \  x" }- ?9 T
    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
    ( o0 P2 b# J! D5 D$ r怎么样把大于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]' 6 O, i5 m. _' Z( s
    2. a=rand;, @+ M$ @% h% t8 I' t
    3. k=find(x>a);
      8 [+ l8 ?! t1 K% ]9 v( A5 i7 H7 t
    4. x(k(1))
    复制代码
    Q2: 如何从列矩阵(n*1)中分段截取数据组成新的矩阵?比如用列矩阵a的前k个数据组成一个新的列矩阵b?中间k个呢?
    1. b=a(1:k);
      6 m% n$ _7 v2 a/ G  y# }6 F3 n+ n
    2. b=a(l:l+k); (l+k<=n)
      2 q7 D/ P2 H% ^. f" 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');" r/ _2 e% D7 d! X5 o
    2. if double(x1)>1   0 c/ m/ i8 v9 r
    3.   x=1& P  U* ?* R# ^3 X
    4. else   
      4 {' t& o9 J! A' m1 b
    5.   x=02 a+ r; `) V3 c2 ?
    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
      $ `. i4 Q7 G8 m1 v
    2. x=[1 2 3 4 5 6 7 8 9 10];5 r+ U3 |8 T* d) G  f4 t
    3. y=[40 50 60 70 80 90 100 110 120 130 ];
      0 k' V4 A; L! n
    4. str1={'A','B','C','D','E','F','G','H','I','J'};
      + P. L$ \" Z) T5 F
    5. por=y./sum(y);8 S, D* ~# K: J+ |$ l& _2 a6 X6 q# ~
    6. for i=1:length(por)   str{i}=[str1{i},' ',num2str(100*por(i)),'%'];+ |; z2 T7 m2 r: {, N4 p6 U
    7. end
      % ?- D+ @  a  |% [
    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.1 E/ g+ V1 f! R1 R0 A
    function FitPaperData
    6 f! n) k& i3 b; b5 qformat long9 l: t5 o- n1 N3 \* ]
    E1=rand(89,1);
    " N/ J% s2 g6 VE2=rand(89,1)+3;
    4 h/ w# L; U, }& _F=inline('p(1).*x.^p(2)+p(3)','p','x');9 f& a* f* t& f% p$ W
    [p,r,j]=nlinfit(E1,E2,F,[1,2,3]);/ \( E# ^7 o4 ~
    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]# Z0 k/ a+ z  P' w, f8 ]
    应该怎么做
    ( E& [/ e  ~' {1 {# v如果各个向量中均无重复元素,提供一个简便的方法# _5 P) R2 n# ~$ H: k
    A=[1 7 6 3 2 9 8];) N' W) `5 _& w4 W" ~
    B=[1 6 3 8] ;. d$ E2 }- C; n3 o2 x2 u
    setdiff(A,B)
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    慵懒
    2017-7-12 08:29
  • 签到天数: 7 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    累计签到:7 天
    连续签到:2 天
     楼主| 发表于 2009-8-14 22:09:23 | 显示全部楼层
    Q8 内联函数如何部分赋值传参& s5 C6 ~" M  D0 p

    5 c: M$ d) E% q6 {9 n
    1. tic
      0 x" T6 p- n" s  h* c( `! m" S
    2. a=rand(1,10);
      ) t& ]- p* t8 K/ a% ^$ w  ~
    3. for i=1:length(a)
      / l- {' ~3 L5 a; E' t; X
    4. ff=['x.^2+',num2str(a(i))];; z$ v+ Y# A  [$ z7 q
    5. f=inline(ff,'x');! g! N' Q% o2 H+ w1 y
    6. d(i)=quadl(f,-1,1);. E" l1 x! x8 j$ _
    7. end
      ; D" {6 B) {6 ^" ?
    8. d
      ) G6 a5 i! M# H2 u6 p  \" W) G) \
    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;$ y0 T! r5 I+ z: B
    name = ['temp' , num2str(i), '.txt']; %假设你想把当前工作区的数据存储为temp160.txt;* g8 T; A  J" |9 I$ |
    eval('save(name)');
    ; j2 N# r( o2 P! f+ R
      C+ _( e' |( i具体的请看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]$ I& S) }- \# b0 ?$ ^, w+ W
    如何将NaN以外的8个数加起来,然后求这8个数的平均数。

    7 N/ X$ O7 p7 ^* f6 |- ]6 F: a-----------------------------------------------------------------% B  h. L- {( m

    ' g4 j9 o5 y0 d6 g+ L5 I! x>> a=[1 2 3 nan 5 nan 7 8 9 10];
    , s4 t3 V3 |5 w! m$ ~. }>> b=a;
    * u, |( w' B+ g>> b(find(isnan(a)))=[]
    1 }( S$ o& w6 S$ P" w) z, F
    - V: T% j' p3 o2 Tb =0 M7 w4 z( V! d4 f, ?5 c" g
    9 ~6 ^9 B3 J# P7 \
    1 2 3 5 7 8 9 10 1 Y# B, f$ `7 W

    : i8 l% S5 g0 V, ~; n$ |
    1 j9 X. V8 Z3 k' _a=[1 2 3 nan 5 nan 7 8 9 10];9 Y) h+ s& U5 H) _. H% {+ ^8 [% J
    简洁些可以这样:/ k/ O& T" G8 L) J
    mean_a=mean(a(~isnan(a)))
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2025-4-21 13:15

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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