오류 해결 방법좀 알고 싶어요
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
동윤
am 13 Mär. 2025
Bearbeitet: Cris LaPierre
am 13 Mär. 2025
% 사용자로부터 입력값을 받습니다.
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 Kommentar
Cris LaPierre
am 13 Mär. 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
Akzeptierte Antwort
Cris LaPierre
am 13 Mär. 2025
Bearbeitet: Cris LaPierre
am 13 Mär. 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 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Signal Generation and Preprocessing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!