當前位置:編程學習大全網 - 編程軟體 - 在matlab中simulink的fromworkplace建立輸入信號問題

在matlab中simulink的fromworkplace建立輸入信號問題

這壹句:

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中完全有很多更好的方式,上面的做法實在算不上高明。

  • 上一篇:消防泵自動巡檢控制櫃是什麽?消防泵自動巡檢控制櫃和消防控制櫃有什麽區別?
  • 下一篇:濟南漢碼未來培訓java怎麽樣 想去看看?
  • copyright 2024編程學習大全網