许多分支的 Matlab 图(分段函数)
Matlab plot for many branches (piecewise function)
我想绘制以下函数
I(x) = 5*(1+x/2) for -2 < x < 0
5*(1-x/2) for 0 < x < 2
0 elsewhere
我使用以下脚本:
clc; close all; clear all;
L = 4;
x = -20:1:20;
I((-L/2) < x & x<0) = 5*(1 + x/(L/2));
I(0 < x & x < (L/2)) = 5*(1 - x/(L/2));
plot (x,I), grid
没用。你能帮帮我吗?
您还需要 select x
的哪些值用于每个条件。像这样:
L = 4;
x = -5:0.1:5;
I = zeros(size(x));
cond1 = (-L/2)<x & x<0;
cond2 = 0<x & x<(L/2);
I(cond1) = 5*(1 + x(cond1)/(L/2));
I(cond2) = 5*(1 - x(cond2)/(L/2));
plot (x,I), grid
不确定边界条件 x=0
、x=-2
和 x=2
您想做什么。但是你只需要修改 cond1
和 cond2
.
Symbolic Math Toolbox 中的分段函数新增了一个函数:piecewise
所以
syms x
y = piecewise(-2<x<0,5*(1+x/2),0<x<2,5*(1-x/2),0);
fplot(y)
我想绘制以下函数
I(x) = 5*(1+x/2) for -2 < x < 0
5*(1-x/2) for 0 < x < 2
0 elsewhere
我使用以下脚本:
clc; close all; clear all;
L = 4;
x = -20:1:20;
I((-L/2) < x & x<0) = 5*(1 + x/(L/2));
I(0 < x & x < (L/2)) = 5*(1 - x/(L/2));
plot (x,I), grid
没用。你能帮帮我吗?
您还需要 select x
的哪些值用于每个条件。像这样:
L = 4;
x = -5:0.1:5;
I = zeros(size(x));
cond1 = (-L/2)<x & x<0;
cond2 = 0<x & x<(L/2);
I(cond1) = 5*(1 + x(cond1)/(L/2));
I(cond2) = 5*(1 - x(cond2)/(L/2));
plot (x,I), grid
不确定边界条件 x=0
、x=-2
和 x=2
您想做什么。但是你只需要修改 cond1
和 cond2
.
Symbolic Math Toolbox 中的分段函数新增了一个函数:piecewise
所以
syms x
y = piecewise(-2<x<0,5*(1+x/2),0<x<2,5*(1-x/2),0);
fplot(y)