在 matlab 上的 for 循环中绘图的问题
Issue with plotting in a for loop on matlab
这是我的 for
循环,它绘制不正确:
for w=1:1:1000
s(w)=w*1j;
hX(w)=(alphaX22_1+betaX22_1*s(w))/(s(w)^2+2*d_X1*wn_X1*s(w)+wn_X1^2)+...
(alphaX22_2+betaX22_2*s(w))/(s(w)^2+2*d_X2*wn_X2*s(w)+wn_X2^2);
mag_hX(w)=sqrt(real(hX(w))^2+imag(hX(w))^2);
%arg_hX(w)=atan(imag(hX(w))/real(hX(w)));
end
figure(2)
plot(w,mag_hX(w),'+')
但我只得到了图上的最后一个值。此外,当我执行 'size s' 或 'size hX' 时,我得到 1 1,但我可以访问 s(350) 和 hX(350)。
为了让您可以 运行 代码,我添加了变量的数值。
% Natural Frequencies and Damping Ratios
wn_X1=354.3; d_X1=0.038;
wn_X2=467.6; d_X2=0.049;
alphaX22_1 = 0.0043
betaX22_1 = -1.2528e-05
alphaX22_2 = 0.0235
betaX22_2 = 4.4012e-06
这是我的 for
循环,它绘制不正确:
for w=1:1:1000
s(w)=w*1j;
hX(w)=(alphaX22_1+betaX22_1*s(w))/(s(w)^2+2*d_X1*wn_X1*s(w)+wn_X1^2)+...
(alphaX22_2+betaX22_2*s(w))/(s(w)^2+2*d_X2*wn_X2*s(w)+wn_X2^2);
mag_hX(w)=sqrt(real(hX(w))^2+imag(hX(w))^2);
%arg_hX(w)=atan(imag(hX(w))/real(hX(w)));
end
figure(2)
plot(w,mag_hX(w),'+')
但我只得到了图上的最后一个值。此外,当我执行 'size s' 或 'size hX' 时,我得到 1 1,但我可以访问 s(350) 和 hX(350)。
为了让您可以 运行 代码,我添加了变量的数值。
% Natural Frequencies and Damping Ratios
wn_X1=354.3; d_X1=0.038;
wn_X2=467.6; d_X2=0.049;
alphaX22_1 = 0.0043
betaX22_1 = -1.2528e-05
alphaX22_2 = 0.0235
betaX22_2 = 4.4012e-06