오류 해결 방법좀 알고 싶어요
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
% 사용자로부터 입력값을 받습니다.
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 Commento
Cris LaPierre
il 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
Risposta accettata
Cris LaPierre
il 13 Mar 2025
Modificato: Cris LaPierre
il 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 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Signal Generation and Preprocessing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!