different basevalue for stems in a for loop

3 ビュー (過去 30 日間)
Chien-Cheng Chiu
Chien-Cheng Chiu 2020 年 9 月 11 日
I am stuck on how I can reset the multiple stems' BaseValues in a for loop.
However, when I run my code, the BaseValues of stem1 to stem11 switch from 0 to -y_shift after some time. Is there a way where I can reset the BaseValues of my stems to be at the right BaseValues?
stem1 to stem11 should have a BaseValue at 0.
stem12 should have a BaseValue at -y_shift.
y_shift = 1;
for k = 1:10:m+1 % for faster animations i.e. skip frame
z = u_approx_dirac(k,:);
clf
hold on
plot(x, zeta(x), 'r');
if t(k) < x_dis(1)
u(k) = u_approx(2,3)*sqrt(zeta(c)/zeta(c+t(k)));
stem1 = stem(t(k), u(k), 'filled', 'k');
set(stem1, 'ShowBaseLine', 'off');
plot1 = plot(x_dirac (abs(z) < z_min), z (abs(z) < z_min), 'k');
end
if x_dis(1) < t(k) && t(k) < x_dis(2)
u(k) = (1 + r_dis(1))*u_approx(2,3)*sqrt(zeta(c)/zeta(c + t(k)));
stem2 = stem(t(k), u(k), 'filled', 'k');
set(stem2, 'ShowBaseLine', 'off');
plot2 = plot(x_dirac (abs(z) < 2), z (abs(z) < 2), 'k');
end
if x_dis(1) < t(k)
u(k) = r_dis(1)*u_approx(2,3)*sqrt(zeta(c)/zeta(2*x_dis(1) - c - t(k)));
stem3 = stem(2*x_dis(1) - c - t(k), u(k), 'filled', 'k');
set(stem3, 'ShowBaseLine', 'off');
end
if x_dis(2) < t(k)
u(k) = (1 + r_dis(2))*(1 + r_dis(1))*u_approx(2,3)*sqrt(zeta(c)/zeta(c + t(k)));
stem4 = stem(t(k), u(k), 'filled', 'k');
set(stem4, 'ShowBaseLine', 'off');
end
if x_dis(2) < t(k) && t(k) < 2*x_dis(2) - x_dis(1)
u(k) = r_dis(2)*(1+r_dis(1))*sqrt(zeta(c)/zeta(2*x_dis(2) - c - t(k)));
stem5 = stem(2*x_dis(2) - c - t(k), u(k), 'filled', 'k');
set(stem5, 'ShowBaseLine', 'off');
plot3 = plot(x_dirac (abs(z) < 2), z (abs(z) < 2), 'k');
end
if 2*x_dis(2) - x_dis(1) < t(k) && t(k) < 3*x_dis(2) - 2*x_dis(1)
u(k) = -r_dis(1)*r_dis(2)*(1 + r_dis(1))*sqrt(zeta(c)/zeta(2*(x_dis(1) - x_dis(2)) + c + t(k)));
stem6 = stem(t(k) - 2*x_dis(2) + 2*x_dis(1), u(k), 'filled', 'k');
set(stem6, 'ShowBaseLine', 'off');
plot4 = plot(x_dirac (abs(z) < 2), z (abs(z) < 2), 'k');
end
if 2*x_dis(2) - x_dis(1) < t(k)
u(k) = r_dis(2)*(1-r_dis(1)^2)*u_approx(2,3)*sqrt(zeta(c)/zeta(2*x_dis(2) - c - t(k)));
stem7 = stem(2*x_dis(2) - t(k), u(k) , 'filled', 'k');
set(stem7, 'ShowBaseLine', 'off');
end
if 3*x_dis(2) - 2*x_dis(1) < t(k)
u(k) = -r_dis(1)*r_dis(2)*(1 + r_dis(1))*(1 + r_dis(2))*u_approx(2,3)*sqrt(zeta(c)/zeta(2*(x_dis(1) - x_dis(2)) + c + t(k)));
stem8 = stem(t(k) + 2*x_dis(1) - 2*x_dis(2), u(k) , 'filled', 'k');
set(stem8, 'ShowBaseLine', 'off');
end
if 3*x_dis(2) - 2*x_dis(1) < t(k) && t(k) < 4*x_dis(2) - 3*x_dis(1)
u(k) = -r_dis(1)*r_dis(2)^2*(1+r_dis(1))*sqrt(zeta(c)/zeta(4*x_dis(2) - 2*x_dis(1) - c - t(k)));
stem9 = stem(4*x_dis(2) - 2*x_dis(1) - t(k), u(k) , 'filled', 'k');
set(stem9, 'ShowBaseLine', 'off');
plot5 = plot(x_dirac (abs(z) < 2), z (abs(z) < 2), 'k');
end
if 4*x_dis(2) - 3*x_dis(1) < t(k)
u(k) = -r_dis(1)*r_dis(2)^2*(1 - r_dis(1)^2)*u_approx(2,3)*sqrt(zeta(c)/zeta(4*x_dis(2) - 2*x_dis(1) - c - t(k)));
stem10 = stem(4*x_dis(2) - 2*x_dis(1) - t(k), u(k), 'filled', 'k');
set(stem10, 'ShowBaseLine', 'off');
end
if 4*x_dis(2) - 3*x_dis(1) < t(k) && t(k) < 5*x_dis(2) - 4*x_dis(1)
u(k) = (r_dis(1)*r_dis(2))^2*(1+r_dis(1))*u_approx(2,3)*sqrt(zeta(c)/zeta(4*x_dis(1) - 4*x_dis(2) + c + t(k)));
stem11 = stem(t(k) + 4*x_dis(1) - 4*x_dis(2), u(k), 'filled', 'k');
set(stem11, 'ShowBaseLine', 'off');
plot6 = plot(x_dirac (abs(z) < .5), z (abs(z) < .5), 'k');
end
plot7 = plot(x_dirac(x_dirac > t(k)), 0*z(x_dirac > t(k)), 'k');
% plotting reflection
time = t(1:2:k);
reflection = reflectedwave(y(1:2:k));
plot8 = plot(time (abs(reflection) < 2), reflection (abs(reflection) < 2) - y_shift , 'b');
stem12 = stem(time (time == 2*dis(1) - 2*delta | time == 2*dis(2) - 2*delta), 2*delta*reflection (time == 2*dis(1) - 2*delta | time == 2*dis(2) - 2*delta) - y_shift, 'filled', 'b', 'ShowBaseLine', 'off');
set(stem12, 'BaseValue', -y_shift, 'ShowBaseLine', 'off');
legend(sprintf('t = %.6f', t(k)));
grid on
xlim([c d]);
xlabel('x');
ylim([-2 2]);
pause(0);
hold off
end

回答 (0 件)

カテゴリ

Help Center および File ExchangeStem Plots についてさらに検索

製品


リリース

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by