找回密码
 注册
关于网站域名变更的通知
查看: 418|回复: 2
打印 上一主题 下一主题

请教一个程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-1-9 10:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
h = 0.001;       % step sizeX = -pi:h:pi;    % domainf = sin(X);      % rangeY = diff(f)/h;   % first derivativeZ = diff(Y)/h;   % second derivativeplot(X(:,1:length(Y)),Y,'r',X,f,'b', X(:,1:length(Z)),Z,'k')请问plot中的(:,1:length(Y))是什么含义?对于:和length(Y)含义不是很懂
, @/ ?7 ^* a# p: l' Y$ J' ^. z# U  a, c. |: X4 W% ?0 M7 v% N

' Z$ g# P0 R/ O$ y$ u+ @

该用户从未签到

2#
发表于 2020-1-9 18:05 | 只看该作者
是X(:,1:length(Y)),在本例中,X是一个行向量,:表明取X向量的第一行,length(Y)计算Y向量的长度,1:length(Y)表明X向量从第一个值开始取长度为length(Y)的向量。在这里,使用一次diff函数会导致计算结果向量比X向量少一个数,使用X(:,1:length(Y))是为了确保绘图的时候横纵坐标的数据长度一致。

该用户从未签到

3#
发表于 2020-1-9 21:40 | 只看该作者
先说明length(y):5 Y1 O! f- z4 h# X- [5 m
1、若y为行向量/列向量,则返回该向量的长度: g* `$ A+ u" k7 l1 o" r
2、若y为m*n的矩阵,则返回n与m二者中的最大值  U" q# {5 W& F, O! ^1 y
原程序对应情况一3 D$ Y3 s9 s$ l" f
  n9 g3 M) z0 {4 |& l9 W
接着‘:’符号:1 ~  S- n, ]# g  ~
例:代码:1:6) c( B* d3 Q6 ^/ k) X- A5 b. _
       实际:[1 2 3 4 5 6]    %默认间隔为1的1至6的向量
6 I/ y3 l7 M; s; b       代码:1:0.5:4
+ ~2 P* I7 Q" v: n4 {7 ^        实际:[1 1.5 2 2.5 3 3.5  4 ]    %间隔为0.5的1至4的向量
! r9 V3 e4 p6 k) L  }# f. P
  v8 W& D+ v3 I+ R# R" i+ B$ R8 J+ r) G" ^matlab中diff函数使用相邻两位的数据求解近似导数,所以若x有n个数值,y就只能有n-1个
1 S' B0 d8 H/ `- A0 \而plot(a,b)这个函数必须保证输入向量a与b长度相等8 @0 w7 X7 E" P' ?4 I; e' [
为保证输出,需要用y的长度来限制x取用的长度1 C  B  c" L; k3 `1 X! H# i* S3 _5 o
x(1:length(y))是取x中第1到n-1个元素作为向量
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 01:26 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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