答案 0 :(得分:3)
这通常由annotation完成,我认为这是手动完成的。由于您有很多图表而且空间不大,我建议您使用text在行尾添加标签。所以在循环中添加(例如ylabel
下)
str = sprintf(' n = %.2f',n);
text(x(end),H(end),str);
这将导致
正如您所看到的那样,开头有重叠,因为曲线彼此接近。您可以按如下方式对第一个稍微偏移进行硬编码:(注释与图形有关,因此我认为可以对此进行硬编码)
if n == 0
text(x(end),H(end)+.005,str);
else
text(x(end),H(end),str);
end
结果:
您的代码的一般评论:
w
符号,因此请删除syms w
k
所以也可以摆脱它w
和x
可以移出循环,w/wn
可以替换为x
你也可以不用循环写这个:
wn=4000; %rad/s
w=0:10:1884;
x=w/wn;
n=0:0.05:0.8;
N = length(n);
H=1./sqrt((1-(ones(N,1)*x).^2)+(2*n.'*x).^2);
plot(x,H)
title('Time versus Response Graph of n');
xlabel('Time(s)');
ylabel('Response(m)');
str = sprintf(' n = %.2f\t',n);
strs = strsplit(str,'\t');
offset = zeros(N,1);
offset(1)=.005;
offset(2)=.001;
text(x(end).*ones(N,1),H(:,end)+offset,strs(1:N));
这样可以更容易地调整不同曲线的偏移。 (注意我已为第二条曲线添加了一个偏移量,并导致下图)