2013-11-26 138 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)。之后填写所有发生的点。 –