2013-11-26 141 views
0

我是matlab和simulink的新手。爲n * 1矩陣繪製輪廓

我有一個函數P,其採取兩個輸入距離和速度(每一個作爲一個函數)..

我建模我的系統中Simulink和我寫在稱爲MATLAB函數,因爲函數的塊在P函數例如具有if語句(如果v < 0,則P = 1否則P = 1/v + d)。

的速度和距離函數是在正弦和具有不同頻率的餘弦的形式..

現在我增加了塊工作空間P,速度和距離爲一個數組。在工作區中,我爲所有這三個數組都有n * 1的數組。

我想提請對於P的輪廓根據速度和距離,但輪廓接受至少一個矩陣2 * 2 ..

我怎樣才能改變P設爲一個矩陣,而不會影響我工作,我想繪製關於速度和距離的P輪廓?

+0

您是否真的與Simulink有關的問題?我的理解是否正確,模擬是否正確,現在你只是在外部的Simulink上有問題?你確定要使用'contour'而不是'plot'嗎? – thewaywewalk

+0

是的,我想使用輪廓不是正常的繪圖..我沒有問題,在simulink之外的值,因爲我說我用這個塊到工作場所,但現在我只有維數n * 1的數組和輪廓不允許那..我想找到另一種方法來幫助我繪製輪廓 – user1413188

+2

輪廓圖需要一個表面,這是你沒有的。你需要P(速度)很多距離。你實際上只有一個簡單的三維圖('plot3')的數據 - 或者你可以使用'v'和'x'作爲軸和'P'的散點圖來着色這些點。 – thewaywewalk

回答

0

這裏是你可以做什麼:

  1. 看哪個速度和你的速度,並定義基於該2維網格。
  2. 嘗試給網格上的每個點提供正確的值(根據您的模擬輸出)
  3. 使用contour函數。

請注意,繪製輪廓大多是有意義的,如果你有一個重要的部分網格覆蓋。否則,請按照@thewaywewalk建議的方法嘗試help plot3

+0

如何定義2維網格..你的意思是像[x,y] = meshgrid(x,y)但我已經有x和y的值.. x和y是大小爲n的數據數組* 1 – user1413188

+0

假設你的x值的範圍是1,2,3,y值的範圍是1,2,那麼你可以定義一個網格爲NaN(3,2)。之後填寫所有發生的點。 –