Error Using Plot for single variable function

I am trying to plot the function Rv(f) and then theta(f). However, whenever I run it I get "Error using plot
Data must be numeric, datetime, duration or an array convertible to double."
Any help would be appreciated.
syms f
% Physical properties of the bar
V0 = 1;
R = 1000;
L = 470*10^(-6);
C = 120*10^(-12);
Rv(f) = (V0*R)/sqrt(R^(2)+(2*pi*f*L-1/(2*pi*f*C))^(2));
theta(f) = atan(((1/(2*pi*f*C))-2*pi*f*L)/R);
x1 = 0:1000:4000000;
% Calculate the inital distribution (almost)
plot(x1,Rv(f))
xlabel('x');
grid on
grid minor
pause(0.01)

2 Kommentare

KSSV
KSSV am 28 Apr. 2020
Youcannot use Rv(f) which is a function striaght away in plot. Substitute the values of f using subs and plot.
could you show how to use subs in this case. not quite getting it still. I'm trying
subs(Rv,f,x1);

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Ameer Hamza
Ameer Hamza am 28 Apr. 2020
Bearbeitet: Ameer Hamza am 28 Apr. 2020

1 Stimme

There are two ways.
1. use fplot
syms f
% Physical properties of the bar
V0 = 1;
R = 1000;
L = 470*10^(-6);
C = 120*10^(-12);
Rv(f) = (V0*R)/sqrt(R^(2)+(2*pi*f*L-1/(2*pi*f*C))^(2));
theta(f) = atan(((1/(2*pi*f*C))-2*pi*f*L)/R);
x1 = 0:1000:4000000;
% Calculate the inital distribution (almost)
fplot(Rv(f), [0 4000000])
xlabel('x');
grid on
grid minor
pause(0.01)
2. using function handle
syms f
% Physical properties of the bar
V0 = 1;
R = 1000;
L = 470*10^(-6);
C = 120*10^(-12);
Rv(f) = (V0*R)/sqrt(R^(2)+(2*pi*f*L-1/(2*pi*f*C))^(2));
theta(f) = atan(((1/(2*pi*f*C))-2*pi*f*L)/R);
x1 = 0:1000:4000000;
Rvf = matlabFunction(Rv);
% Calculate the inital distribution (almost)
plot(x1,Rvf(x1))
xlabel('x');
grid on
grid minor
pause(0.01)

Weitere Antworten (0)

Produkte

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by