這壹句:
fin=[[0:1/2000:1/2000][1:-1/500:1/500]];語法不對,主要問題是“][”不能連在壹起,可以在中間加空格或逗號,如
fin=[[0:1/2000:1/2000]?[1:-1/500:1/500]];或者
fin=[[0:1/2000:1/2000],[1:-1/500:1/500]];都可以。意思是由兩個向量拼接成為壹個更大的向量fin。這兩個向量分別是0:1/2000:1/2000和1:-1/500:1/500,都是按照“開始值:步長:結束值”的格式寫的,屬於MATLAB最基礎的內容,沒更多可解釋的了。
不過根據後面的代碼看,表達式很可能寫錯了,猜測作者本意(這個不是語法錯誤,只能猜測),前壹個向量應改為0:1/2000:1-1/2000,這樣生成的向量有2000個元素,再加上1:-1/500:1/500有500個元素,拼接到壹起就是2500個元素。
接下來的兩句
t=0:4999;value=[fin?fin];
生成壹個時間向量t(有5000個元素),value由兩個fin拼接,也有5000個元素,每個時間對應壹個數據的值,就可以作為輸入信號了。
不過,最後壹句
jaws=[t'value'];又錯了,同樣是語法錯誤,中間缺少壹個空格或逗號,即應為
jaws=[t'?value'];意思是,兩個行向量t和value轉置成列向量再拼接,成為5000x2的矩陣,剛好符合from workplace模塊的要求。
完整的代碼應為
fin=[[0:1/2000:1-1/2000],[1:-1/500:1/500]];t=0:4999;value=[fin?fin];
jaws=[t'?value'];
如果用
plot(t,value)畫壹下輸入信號的形狀,如圖所示
最後應該說明壹下,要產生這樣的鋸齒波,Simulink中完全有很多更好的方式,上面的做法實在算不上高明。