오류 해결 방법좀 알고 싶어요

3 visualizaciones (últimos 30 días)
동윤
동윤 el 13 de Mzo. de 2025
Editada: Cris LaPierre el 13 de Mzo. de 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 comentario
Cris LaPierre
Cris LaPierre el 13 de Mzo. de 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 );
Error using /
Matrix dimensions must agree.
% 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

Iniciar sesión para comentar.

Respuesta aceptada

Cris LaPierre
Cris LaPierre el 13 de Mzo. de 2025
Editada: Cris LaPierre el 13 de Mzo. de 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.

Más respuestas (0)

Categorías

Más información sobre Signal Generation and Preprocessing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by