matlab求导后作图

t=[0:pi/20:2*pi]y=atan((3*sin(pi*t))/4)a=diff(y)plot(t,a)它老是说我Vectorsmustbethesamelen... t=[0:pi/20:2*pi]
y=atan((3*sin(pi*t))/4)
a=diff(y)

plot(t,a)

它老是说我Vectors must be the same lengths.
画不出
展开
dukinkin
2014-09-28 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2444
采纳率:90%
帮助的人:958万
展开全部
利用diff求差分之后,得到的数列总比原来的数列的长度减少一
因为是后一个数减去前一个数
diff(y) 相当于y(2:end)-y(1:end-1)

而你的t是和原来的y一样长的,而a=diff(y)的长度比y少一
随意,t和a的长度不一致,报错

你可以再生成一个tt,让它等于原来t相邻两点的中点
那么tt就会和a长度相等,就可以画图
还有一点要注意,导数是dy/dx,
差分计算的时候只是计算了dy而没有除以dx
这正获得导数的图像,需要给dy的结果除以t的增量

t=[0:pi/20:2*pi];
y=atan((3*sin(pi*t))/4);
a=diff(y)/(pi/20);
tt=(t(2:end)+t(1:end-1))/2;

plot(tt,a)
百度网友3c63e6c
2014-09-28 · TA获得超过2849个赞
知道大有可为答主
回答量:3829
采纳率:68%
帮助的人:2809万
展开全部
不知道你的a长度是多少,似乎你的a并不是一个向量啊。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式