【问题标题】:drawing a contour for n* 1 matrix为 n*1 矩阵绘制轮廓
【发布时间】:2013-11-26 18:36:52
【问题描述】:

我是 matlab 和 simulink 新手。

我有一个函数 P,它接受两个输入距离和速度(每个都作为一个函数)..

我在 simulink 中对我的系统进行建模,并在称为 Matlab 函数的块中编写了 P 函数,因为该函数具有例如 if 语句(如果 v

速度和距离函数是不同频率的正弦和余弦形式..

现在我将块添加到工作区,用于 P、速度和距离作为数组。在工作区中,我对所有三个都有 n*1 数组。

我想根据速度和距离为 P 绘制轮廓,但轮廓至少接受一个矩阵 2*2 ..

如何在不影响工作的情况下将 P 更改为矩阵,并且我想根据速度和距离绘制 P 的轮廓??

【问题讨论】:

  • 您的问题实际上与 Simulink 有关吗?我是否理解正确,模拟没问题,而您现在只是在 Simulink 外部的绘图上遇到问题?您确定要使用contour 而不是plot
  • 是的,我想使用轮廓而不是正常的绘图。我没有将值取到 simulink 之外的问题,因为我说过我将块用于工作场所,但现在我只有数组尺寸 n*1 并且轮廓不允许这样做.. 我想找到另一种方法来帮助我绘制轮廓
  • 等高线图需要一个您没有的表面。你需要 P(velocity) 很多距离。实际上,您只有一个简单的 3Dplot (plot3) 的数据 - 或者您可以使用散点图,vx 作为轴,P 为点着色。
  • 我想要一维轮廓。我实际上是在将我的结果与等高线图进行比较,所以我必须画一个等高线。

标签: matlab simulink contour


【解决方案1】:

你可以这样做:

  1. 查看您拥有的速度和速度,并据此定义二维网格。
  2. 尝试为网格上的每个点赋予正确的值(根据您的模拟输出)
  3. 使用contour 函数。

请注意,如果您覆盖了大部分网格,则绘制轮廓通常是有意义的。否则按照@thewaywewalk 的建议尝试help plot3

【讨论】:

  • 如何定义二维网格.. 你的意思是 [x,y] = meshgrid (x,y) 但我已经有了 x 和 y 的值.. x 和 y 是数据数组大小为 n *1
  • 假设 x 值的范围是 1,2,3,y 值的范围是 1,2,那么您可以将网格定义为 NaN(3,2)。然后用所有出现的点填充它。
猜你喜欢
  • 2019-08-13
  • 1970-01-01
  • 2011-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多