MATLAB:使用多个变量对图进行数字化并实现数据

时间:2016-05-12 15:04:35

标签: matlab plot

我有8个图,我想在我的Matlab代码中实现。这些图来源于几篇研究论文,因此,我需要先将它们数字化,以便能够使用它们。

情节的一个例子如下所示:Example plot

这基本上是一个有三个不同变量的曲面图。我知道如何使用X和Y坐标数字化常规绘图。但是,如何将这样的图形数字化呢?因此,我很不确定。

此外,如果我能够从该图中获取数据。您如何在代码中使用它?也许在给定数据点之间进行一些插值和外推?

欢迎提供有关此主题的任何提示。

提前致谢

2 个答案:

答案 0 :(得分:0)

以下是我的建议:

  1. 使用imread在Matlab中阅读图片。
  2. 手动找到左下角和右上角的像素位置
  3. 使用这些像素值和实际数值,可以很容易地确定每个像素的x和y值。我建议你使用meshgrid
  4. 知道曲线为黑色,然后从图像中删除每个非黑色像素,这样只留下曲线和数字。
  5. 然后使用函数bwareaopen删除小对象(数字)。不要忘记反转图像以去除黑色而不是白色。
  6. 最后,通过使用点#3和点#6的结果,您可以手动提取图表的数据。这并不容易,但它是可行的。

答案 1 :(得分:0)

您需要三个变量的数据才能在Matlab中创建一个图表,您可以从之前的研究中获得图表,也可以从图表中估算和插值。一旦获得数据,有两个函数可用于制作表面图,surface和surf,surf与surface几乎相同但包括着色。

对于插值和外推,听起来您可能想要检查2D插值interp2。 interp2函数也可以进行外推。

您应该阅读这些功能的文档,如果有任何问题,请回发具体问题。