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 件のコメント

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

サインインしてコメントする。

 採用された回答

Ameer Hamza
Ameer Hamza 2020 年 4 月 28 日
編集済み: Ameer Hamza 2020 年 4 月 28 日

1 投票

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)

その他の回答 (0 件)

カテゴリ

製品

タグ

質問済み:

2020 年 4 月 28 日

編集済み:

2020 年 4 月 28 日

Community Treasure Hunt

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

Start Hunting!

Translated by