如何从Matlab中的.fig中提取矩阵?

时间:2017-04-21 22:57:50

标签: image algorithm matlab image-processing matlab-figure

我有一个Matlab .fig 文件。 (基本上是一个pcolor图)。我想从这个图像中提取矩阵(比如行和列到数组变量中)。我该怎么做呢?感谢任何输入或指示。

2 个答案:

答案 0 :(得分:1)

轴有一个子项,如果您使用pcolor函数,则为surface类型的对象;如果您使用image函数,则为image类型的对象。矩阵位于此对象的CData属性中:

>> x = magic(3) % example data
x =
     8     1     6
     3     5     7
     4     9     2
>> pcolor(x) % generate image
>> get(get(gca,'Children'),'CData') % retrieve the data
ans =
     8     1     6
     3     5     7
     4     9     2

答案 1 :(得分:0)

除了Luis Mendo的回答,我想指出MATLAB支持点符号,如果性能有任何问题,点符号应始终优于set()/ get()方法。

使用handle()函数包装器和点符号对于设置和获取句柄类属性来说是最快的。

>> x=magic(3)

x =

     8     1     6
     3     5     7
     4     9     2

>> pcolor(x)
>> ax = handle(gca);
>> ax.Children.CData

ans =

     8     1     6
     3     5     7
     4     9     2

有关计时实验和详细信息,请参阅:Undocumented MATLAB