오류 해결 방법좀 알고 싶어요
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
% 사용자로부터 입력값을 받습니다.
m2 = input('질량 m2를 입력하세요 (예: 5): ');
m3 = input('질량 m3를 입력하세요 (예: 10): ');
k = input('스프링 상수 k를 입력하세요 (예: 2000): ');
c = input('감쇠 계수 c를 입력하세요 (예: 50): ');
V2 = input('초기 속도 V2를 입력하세요 (예: 2): ');
% 감쇠비 xi, 고유진동수 omega, 감쇠된 진동수 omega_d 계산
xi = c / (2 * sqrt(k * (m2 * m3) / (m2 + m3)));
omega = sqrt( k * (m2 + m3) / (m2 * m3) );
omega_d = omega * sqrt(1 - xi^2);
% 시간 범위 설정 t_vals = linspace(0, 5, 1000);
% y2(t) 계산 y2_vals = V2 * (m2 / (m2 + m3)) * ( (m3 / m2) * (1 / omega_d) ...
* exp(-xi * omega * t_vals) .* sin(omega_d * t_vals) + t_vals );
% y3(t) 계산 y3_vals = V2 * (m2 / (m2 + m3)) * ( (-1 / omega_d) ...
* exp(-xi * omega * t_vals) .* sin(omega_d * t_vals) + t_vals );
% 애니메이션을 위한 그래프 설정 figure;
h1 = animatedline('Color', 'b', 'LineWidth', 2);
h2 = animatedline('Color', 'r', 'LineWidth', 2);
xlabel('시간 (초)', 'FontSize', 12);
ylabel('변위 (미터)', 'FontSize', 12);
title('시간에 따른 질량의 변위 애니메이션', 'FontSize', 14);
legend('y_2(t)', 'y_3(t)', 'FontSize', 12);
grid on
다음 사용 중 오류가 발생함: /
행렬의 차원이 일치해야 합니다.
오류 발생: untitled3 (14번 라인)
y2_vals = V2 * (m2 / (m2 + m3)) * ( (m3 / m2) * (1 / omega_d) ...
1 commentaire
Cris LaPierre
le 13 Mar 2025
Here's an example that duplicates the issue.
% Gets input from the user.
m2 = [5 6];%input('Enter mass m2 (e.g. 5): ');
m3 = 10;%input('Enter mass m3 (e.g. 10): ');
k = 2000;%input('Enter the spring constant k (e.g. 2000): ');
c = 50;%input('Enter the damping factor c (e.g. 50): ');
V2 = 2;%input('Enter the initial velocity V2 (e.g. 2): ');
% Calculate damping ratio xi, natural frequency omega, and damped frequency omega_d
xi = c / (2 * sqrt(k * (m2 * m3) / (m2 + m3)));
omega = sqrt(k * (m2 + m3) / (m2 * m3) );
omega_d = omega * sqrt(1 - xi^2);
% Set time range
t_vals = linspace(0, 5, 1000);
% y2(t)
y2_vals = V2 * (m2 / (m2 + m3)) * ( (m3 / m2) * (1 / omega_d) ...
* exp(-xi * omega * t_vals) .* sin(omega_d * t_vals) + t_vals );
% y3(t)
y3_vals = V2 * (m2 / (m2 + m3)) * ((-1 / omega_d) ...
* exp(-xi * omega * t_vals) .* sin(omega_d * t_vals) + t_vals );
% Graph settings for animation figure;
h1 = animatedline('Color', 'b', 'LineWidth', 2);
h2 = animatedline('Color', 'r', 'LineWidth', 2);
xlabel('Time (seconds)', 'FontSize', 12);
ylabel('Displacement (meters)', 'FontSize', 12);
title('Animation of mass displacement over time', 'FontSize', 14);
legend('y_2(t)', 'y_3(t)', 'FontSize', 12);
grid on
Réponse acceptée
Cris LaPierre
le 13 Mar 2025
Modifié(e) : Cris LaPierre
le 13 Mar 2025
When I use input values that match your recommendations, the code runs without error. However, when I input 2 values for m2, m3, or k instead of 1, then I can reproduce the error.
Your code is not written to handle vectors. Only input one value for each input.
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Signal Generation and Preprocessing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!