incorrect number or types of inputs or outputs for function 'int'
151 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Akzeptierte Antwort
Torsten
am 30 Mär. 2023
Verschoben: Torsten
am 30 Mär. 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 Kommentare
Weitere Antworten (1)
Alan Stevens
am 29 Mär. 2023
Bearbeitet: Alan Stevens
am 29 Mär. 2023
Replace your power calculation with
power = (1/T_0) * trapz(t,y.^2);
Edited - Walter is correct.
4 Kommentare
Steven Lord
am 30 Mär. 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.
Siehe auch
Kategorien
Mehr zu Number Theory 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!