20 views (last 30 days)

clc

clear

syms r I % I = current, r = radius

a = 2;

b = 5;

c = 7;

B = piecewise(r<=0 & r>=a,((r/a)^2)*I, r>=a & r<=b, I, r>=b & r<=c, (c^2-r^2)/(c^2-b^2), r>c, 0);

fplot(B)

ax = gca;

ax.XAxisLocation = 'origin';

ax.YAxisLocation = 'origin';

grid on

title('\color[rgb]{0,0.5,0.5} Magentic Flux Density Magnitude')

xlabel('\sl \color[rgb]{0,0.5,0.5} r Radial Distance (cm)')

ylabel('\sl \color[rgb]{0,0.5,0.5} H Magnetic field magnitude (A/cm)')

Above is a what I would like to plot, but I recieve errors plotting. Below are my errors, I would like some guidance on how to correct my errors.

piecewise(2 <= r & r <= 5, I, 5 <= r & r <= 7, sym(49/24) - r^2/24, 7 < r, 0)

Error using fplot>singleFplot (line 240)

Input must be a function or functions of a single variable.

Error in fplot>@(f)singleFplot(cax,{f},limits,extraOpts,args) (line 200)

hObj = cellfun(@(f) singleFplot(cax,{f},limits,extraOpts,args),fn{1},'UniformOutput',false);

Error in fplot>vectorizeFplot (line 200)

hObj = cellfun(@(f) singleFplot(cax,{f},limits,extraOpts,args),fn{1},'UniformOutput',false);

Error in fplot (line 166)

hObj = vectorizeFplot(cax,fn,limits,extraOpts,args);

Thanks in advance!

Star Strider
on 25 Oct 2020 at 1:27

The Symbolic Math Toolbox and here particularly the piecewise funciton may not be the best option for this problem.

Use ordinary MATLAB plotting fucntions and code the piecewise expression and plot it as demonstrated here (not your function):

f = @(x) (2-2*x).*(x <= 0) + (2+2*x).*(x>0);

t = linspace(-3, 3);

figure

plot(t, f(t))

grid

ylim([0 max(ylim)])

Your function has two variables, ‘r’ and ‘I’, so it would have to be coded as:

B = @(r,I) (r<=0 & r>=a) .*(((r/a)^2)*I) + (r>=a & r<=b).*I + (I).*((c^2-r^2)/(c^2-b^2)) + (r>c).*(0);

Star Strider
on 26 Oct 2020 at 1:16

Our pleasure!

If my Answer helped you solve your problem, please Accept it!

.

Opportunities for recent engineering grads.

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

Start Hunting!
## 0 Comments

Sign in to comment.