incorrect number or types of inputs or outputs for function 'int'
144 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
When I put this code with int function, it always says in red: Wrong type or number in function int. Tried to change units, tried all which I could do.
Any advices?
% Define the parameters of the signal
A = 1; % Amplitude
T_0 = 4*pi; % Period
t = linspace(0, T_0, 1000); % Time vector
% Generate the signal
y = A*cos(4*pi*t/T_0);
% Calculate the power of the signal using integration
power = (1/T_0) * int((y).^2, t(1), t(end));
% Plot the signal
plot(t, y);
xlabel("Time (s)");
ylabel("Amplitude");
title("A*cos(4*pi*t/T_0)");
% Display the signal power
disp(['Signal power = ' num2str(power)]);
0 commentaires
Réponse acceptée
Torsten
le 30 Mar 2023
Déplacé(e) : Torsten
le 30 Mar 2023
% Define the parameters of the signal
A = 1; % Amplitude
T_0 = 4*pi; % Period
syms t
% Generate the signal
y = A*cos(4*pi*t/T_0);
% Calculate the power of the signal using integration
power = (1/T_0) * int(y^2)
power = matlabFunction(power)
y = matlabFunction(y)
t_num = linspace(0, T_0, 1000); % Time vector
y_num = y(t_num);
% Plot the signal
plot(t_num, y_num);
xlabel("Time (s)");
ylabel("Amplitude");
title("A*cos(4*pi*t/T_0)");
% Display the signal power
power_num = power(t_num(end))-power(t_num(1));
disp(['Signal power = ' num2str(power_num)]);
0 commentaires
Plus de réponses (1)
Alan Stevens
le 29 Mar 2023
Modifié(e) : Alan Stevens
le 29 Mar 2023
Replace your power calculation with
power = (1/T_0) * trapz(t,y.^2);
Edited - Walter is correct.
4 commentaires
Steven Lord
le 30 Mar 2023
The int function to perform integration is only defined for symbolic inputs, not numeric inputs. So this works:
syms x
int(x^2)
but this doesn't.
y = (1:10).^2;
int(y)
In your code y is a vector of values not a symbolic expression.
Voir également
Catégories
En savoir plus sur Number Theory 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!