绘制我的数据不变的行

时间:2014-11-22 19:48:51

标签: matlab plot lines

我正在从事流体力学项目,而且我不是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上有点乱糟糟的情节。 先谢谢你。

P.S:想知道这是一种情节(使用我的数据,应该几乎相同)! http://i58.tinypic.com/a4sosz.png

1 个答案:

答案 0 :(得分: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))