實現如下的分段函數:
方法一:
# 先寫一個函數腳本;
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')
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相同大小的全零陣;