incorrect number or types of inputs or outputs for function 'int'
63 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Torsten
2023-3-30
移动:Torsten
2023-3-30
% 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 个评论
更多回答(1 个)
Alan Stevens
2023-3-29
编辑:Alan Stevens
2023-3-29
Replace your power calculation with
power = (1/T_0) * trapz(t,y.^2);
Edited - Walter is correct.
4 个评论
Steven Lord
2023-3-30
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Number Theory 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!