实现如下的分段函数:
m={t0≤t<1−t+21<t≤20.1其他
m=\left\{
\begin{array}{rcl}
t & & {0 \leq t <1}\\
-t+2 & & {1 < t \leq 2}\\
0.1 & & {其他}\\
\end{array} \right.
m=⎩⎨⎧t−t+20.10≤t<11 方法一: # 先写一个函数脚本; function m=fenduanhanshu(t) m=t.*(t>=0 & t<1)+(-t+2).*(t>1 & t<=2)+0.1.*(t<0 | t>2) # 注意此处是点乘,否则会报错内部矩阵维度不一致; end 此处语句解释:当表达式中的(t>=0 & t<1)成立时,此时的布尔表达式值为True,值为1,t*(t>=0 & t<1) = t1;此时表达式中的布尔表达式(t>1 & t<=2)和(t<0 | t>2)都不成立,取0参与运算,故此时m=t1+(-t+2)0+0.10 = t; # 在command window中调用此函数,并作图; >> x=0:0.01:2; >> m=fenduanhanshu(t); >> plot(m,t) 作图如下: 方法二: # 写一个脚本后直接运行; t=-1:0.01:3; # 自己根据需要设置; m=zeros(size(t)); # 生成与矩阵t相同大小的全零矩阵; for i=1:length(t) # 数组长度(即行数或列数中的较大值); if (t(i)>=0)&(t(i)<=1) m(i)=t(i); elseif (t(i)>1)&(t(i)<=2) m(i)=-t(i)+2; else m(i)=0.1; end end plot(t,m,'r') # 'r'表示线为红色; grid on # 网格 >> t=-1:0.01:3; >> size(t) # 当只有一个输出参数时,返回一个行向量,该行向量的第一个元素是矩阵的行数,第二个元素是矩阵的列数; ans = 1 401 B=zeros(n) # 生成n×n全零阵; B=zeros(m,n) # 生成m×n全零阵; B=zeros([m n]) # 生成m×n全零阵; B=zeros(d1,d2,d3……) # 生成d1×d2×d3×……全零阵或数组; B=zeros([d1 d2 d3……]) # 生成d1×d2×d3×……全零阵或数组; B=zeros(size(A)) # 生成与矩阵A相同大小的全零阵; n=length(A) # 如果A为非空数组,返回行数和列数两者之间数值较大的那一个值,即相当于执行了max(size(A)); # 如果A为空数组,则返回0; # 如果A是一个向量则返回A的长度; n=numel(A) # 该语句返回数组A中元素的总数;