MATLAB分段函数
if x>=1
y=3*x.^2+1;
elseif -1<x<1
y=0;
else
y=-x.^3+2;
end
plot(x,y)
问什么不能实现分段函数? 展开
步骤如下
1、打开MATLAB软件,如图所示。
2、建立一个脚本文件,具体方法如图所示。
3、定义变量。
4、建立循环,求解分段函数。
5、采用以下指令画图。
6、画出的图片如图所示。
扩展资料
20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市场。到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。
MATLAB:统一了用于一维、二维与三维数值积分的函数并提升了基本数学和内插函数的性能
MATLAB Compiler:可以下载 MATLAB Compiler Runtime (MCR),简化编译后的程序和组件的分发
Image Processing Toolbox:通过亮度指标优化进行自动图像配准
Statistics Toolbox:增强了使用线性、广义线性和非线性回归进行拟合、预测和绘图的界面
System Identification Toolbox:识别连续时间传递函数
参考资料:百度百科 MATLAB发展历程
1.简单实例:用matlab画分段函数
当x<0时 y=5*sin(x);
当x>=0且x<=5时 y=x^2;
当x>5时 y=(8-x)^2+16.
x=-5:0.001:10;y=5*sin(x).*(x<0)+x.^2.*(x>=0 & x<=5)+((8-x).^2+16).*(x>5);plot(x,y);grid on;
A=500000;V=100000;Tacc=0.2;Vs=0;S0=50000;S=200000;Td=0.5;Tdd=0.6;Tddd=0.7;Tdddd=1.05;Ted=1.25;
t=0:0.0001:Ted;
Vt=(Vs+A*t).*(t>=0 & t<Tacc)...
+V.*(t>=Tacc & t<Td)...
+(V-A*(t-Td)).*(t>=Td & t<Tdd)...
+((V-A*(Tdd-Td))+A*(t-Tdd)).*(t>=Tdd & t<Tddd)...
+V.*(t>=Tddd & t<Tdddd)...
+(V-A*(t-Tdddd)).*(t>=Tdddd & t<=Ted);
plot(t*1000,Vt/1000);
axis([0 1.4*1000 0 120000/1000])
title('T形曲线变位过程');
xlabel('时间(ms)');
ylabel('速度(KHz)');
grid on;
2.应用:加减速仿真曲线绘制
T形速度曲线变位过程
A=500000;V=100000;Tacc=0.2;Vs=0;S0=50000;S=200000;Td=0.5;Tdd=0.6;Tddd=0.7;Tdddd=1.05;Ted=1.25;
t=0:0.0001:Ted;
Vt=(Vs+A*t).*(t>=0 & t<Tacc)...
+V.*(t>=Tacc & t<Td)...
+(V-A*(t-Td)).*(t>=Td & t<Tdd)...
+((V-A*(Tdd-Td))+A*(t-Tdd)).*(t>=Tdd & t<Tddd)...
+V.*(t>=Tddd & t<Tdddd)...
+(V-A*(t-Tdddd)).*(t>=Tdddd & t<=Ted);
plot(t*1000,Vt/1000);
axis([0 1.4*1000 0 120000/1000])
title('T形曲线变位过程');
xlabel('时间(ms)');
ylabel('速度(KHz)');
grid on;
扩展资料:
MATLAB[1] 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
1、首先我们确定下所画的函数
sin(2*x) 0<=x<=pi
2*x pi<x<=5
0 其余的x
2、然后我们介绍下匿名函数f=@(x) sin(2*x) 此时我们就定义了一个sin(2*x)函数。
3、接着我们限制sin(2x)的定义域,(x>=0 & x<=pi) 这里&表示并且的意思。
4、我们按同样的方法定义第二个函数 2*x.*(x>pi& x<=5)
5、最后我们将两个函数组合在一起,这样我们就基本完成任务了。 f=@(x) sin(2*x) .*(x>=0 & x<=pi) +2*x.*(x>pi& x<=5)
6、然后我们定义所画的范围z=-1:10^-2:7;y=f@(z); plot(z,y,'or')
下面以你的题目为例
function m=fenduanhanshu(t)
m=t*(t>=0 & t<1)+(-t+2)*(t>1 & t<=2)+0.1*(t<0 | t>2)
【解释】
在Matlab中,上述函数中的表达式m=t*(t>=0 & t<1)+(-t+2)*(t>1 & t<=2)+0.1*(t<0 | t>2)的运算规则是当布尔表达式为true时,布尔表达式的值取1,参与运算,否则取0,参与运算。
例如,当表达式中的(t>=0 & t<1)成立时,t*(t>=0 & t<1)=t*1;此时表达式中的布尔表达式(t>1 & t<=2)和(t<0 | t>2)都不成立,取0参与运算,故此时m=t*1+(-t+2)*0+0.1*0=t。
Matlab中的这种设计极大地方便了用户进行科学计算,减少了用户书写的代码量,开发效率大大提高,个人非常喜欢,所以也极力推荐各位使用。
当然还可以用if……elseif……else……end语句,在此不再多说了。
【绘制函数】
x=0:0.001:2;
y=fenduanhanshu(x);
plot(x,y)
还有就是用Matlab自带的函数工具箱,具体大家自己找下。