2014-11-22 29 views
1

我正在研究流體力學項目,我不是Matlab繪圖專家。我希望你能幫我做下面的事情(我不確定我要使用什麼繪圖功能以及如何)。你不需要知道任何流體力學來回答這個問題,但我會稍微解釋一下,以便更好地理解。我的數據是恆定的線圖

我有一個數據數組,代表管道內流體的流函數(psi)的值。每個節點都是管道中的一個點。我們知道,如果我們繪製一條直線,該直線符合psi的特定(恆定)值,則有一條流線。我想繪製這些流線,而不使用函數streamline,只需使用正常情節並使用我的數據。

我矩陣是:

data = (10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 ; 
8.00 8.02 8.04 8.07 8.12 8.20 8.30 8.42 8.53 8.63 8.72 8.80 8.86 8.91 8.96 9.00; 
6.00 6.03 6.07 6.12 6.22 6.37 6.59 6.83 7.07 7.28 7.45 7.60 7.72 7.83 7.92 8.00; 
4.00 4.03 4.07 4.14 4.26 4.48 4.85 5.26 5.63 5.95 6.21 6.43 6.61 6.75 6.88 7.00; 
2.00 2.02 2.05 2.10 2.20 2.44 3.08 3.70 4.23 4.67 5.01 5.29 5.52 5.70 5.86 6.00; 
0 0 0 0 0 0 1.33 2.24 2.93 3.47 3.88 4.21 4.46 4.67 4.84 5.00; 
0 0 0 0 0 0 0 1.01 1.78 2.38 2.84 3.19 3.46 3.67 3.84 4.00; 
0 0 0 0 0 0 0 0 0.80 1.43 1.91 2.25 2.51 2.70 2.86 3.00; 
0 0 0 0 0 0 0 0 0 0.63 1.10 1.41 1.62 1.77 1.89 2.00; 
0 0 0 0 0 0 0 0 0 0 0.44 0.66 0.79 0.88 0.94 1.00; 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) 

哪裏有零點是因爲沒有牆。

我想要做什麼,是情節流線時: PSI = 10,PSI = 8,PSI = 6,PSI = 4,PSI = 2

例如,第一流線型(PSI = 10)將是一條直線,它將在數值爲10的地方水平走向。第二條曲線會稍微彎曲一點(因爲它必須跟隨其值爲8的每個點。依此類推)。

你們可以幫我看看這個代碼嗎?我有點在Matlab上搞砸了。 預先感謝你。

PS:爲了得到ñ想法這是這種情節(使用我的數據,應該幾乎相同)! http://i58.tinypic.com/a4sosz.png

回答

1

像這樣的東西適合你嗎?

2:2:10設置要顯示的級別。如果你想看到更好的10值水平遵守前面打了一下與axis功能

subplot(121) 
contour(data,2:2:10,'ShowText','on') 
subplot(122) 
contourf(data,2:2:10,'ShowText','on') 

enter image description here

如果你想的情節顛倒,你可以做contour(flipud(data))

+0

哇,是的,我接着說: data = data(end:-1:1,:); 「 將其顛倒。 然而,你是如何獲得第二個陰謀?我只想要那個,但是如果代碼是相同的,你是怎麼做到的? – user3780731 2014-11-22 20:15:49

+0

@ user3780731 oops我有一個錯字!功能是contourf – 2014-11-22 20:16:45

+1

非常好的答案+1, – Rashid 2014-11-22 20:17:30