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

2 次查看(过去 30 天)
동윤
동윤 2025-3-13
% 사용자로부터 입력값을 받습니다.
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 个评论
Cris LaPierre
Cris LaPierre 2025-3-13
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

请先登录,再进行评论。

采纳的回答

Cris LaPierre
Cris LaPierre 2025-3-13
编辑:Cris LaPierre 2025-3-13
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 个)

类别

Help CenterFile Exchange 中查找有关 Signal Generation and Preprocessing 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by