首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在matlab中不显示网格线

为什么在matlab中不显示网格线
EN

Stack Overflow用户
提问于 2015-12-15 22:23:42
回答 1查看 80关注 0票数 0
代码语言:javascript
复制
if zeta < 1
omegad = omegan*sqrt(1-zeta^2);
c1 = y0;
c2 = ydot0/(omegan);
p1 = (-zeta*omegan)+(omegan)*sqrt((zeta^2)-1);
p2 = (-zeta*omegan)-(omegan)*sqrt((zeta^2)-1);

x = c1*exp(p1*t)+c2*exp(p2*t);
xdot = p1*c1*exp(p1*t)+p2*c2*exp(p2*t);
set(handles.omegad_output,'String',omegad);

elseif zeta == 1
omegad = omegan*sqrt(1-zeta^2);
c1 = y0;
c2 = ydot0/(omegan);
x = c1*exp(-omegan.*t)+c2.*t*exp(-omegan.*t);
xdot = -omegan*c1*exp(-omegan.*t)-omegan*c2*t*exp(-omegan*t)+t*exp(-omegan*t);
set(handles.omegad_output,'String',omegad);

else 
omegad = omegan*sqrt(1-zeta^2);
c1 = y0;
c2 = (ydot0+zeta*omegan*y0)/omegad; 
x = exp(-zeta*omegan.*t).*(c1*cos(omegad.*t)+c2*sin(omegad.*t));
A = -zeta*omegan*exp(-zeta*omegan.*t);
B = c1*cos(omegad.*t)+c2*sin(omegad.*t);
C = exp(-zeta*omegan.*t);
D = -c1*omegad*sin(omegad.*t)+c2*omegad*cos(omegad.*t);
xdot = A.*B+C.*D;
set(handles.omegad_output,'String',omegad);
end



% Create Amplitude plot in proper axes
plot(handles.amplitude_axes,t,x)
set(handles.amplitude_axes,'XMinorTick','on')
grid on

% Create Velocity plot in proper axes
plot(handles.velocity_axes,t,xdot)
set(handles.velocity_axes,'XMinorTick','on')
grid on

我正在构造一个GUI,这里是plot按钮回调函数。我有上面的代码,当我绘制它时,网格线只出现在振幅图上,而不是速度图上,我如何让两个图的网格线都显示出来。

EN

回答 1

Stack Overflow用户

发布于 2015-12-15 22:28:34

grid on替换为:

代码语言:javascript
复制
grid (handles.velocity_axes,'on')
grid (handles.amplitude_axes,'on')

这是因为grid的命令形式仅适用于当前轴gca。在特定轴上绘制不会使这些轴成为当前轴,因此第二个grid on将再次应用于当前轴,这恰好是振幅图。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34291647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档