导出MATLAB的方法视图的输出

时间:2015-12-06 17:45:40

标签: matlab api com export matlab-figure

在探索外部类(Java,COM等)提供的API时,MATLAB的methodsview工具非常方便。以下是此功能的工作原理示例:

myApp = actxserver('Excel.Application');
methodsview(myApp)

Example output of methodsview for

我希望将信息保留在此窗口中以供将来参考,方法是将其导出到表格,cell字符串数组,.csv或其他类似格式,最好不使用外部工具。

我试过的一些事情:

  • 此窗口允许一次选择一行并执行“ Ctrl + c Ctrl + v “on it,这会产生一个与标签分隔的文本,如下所示:

    Variant GetCustomListContents   (handle, int32)
    

    当只有几种方法时,这种策略可以工作,但对于(通常遇到的)长列表不可行。

  • 我找不到通过图形句柄访问表数据的方法(没有使用findjobjuiinspect等外部工具),因为findall(0,'Type','Figure')“看不到” methodsview窗口/数字。

我的MATLAB版本是R2015a。

1 个答案:

答案 0 :(得分:2)

幸运的是,methodsview.m文件是可访问的,并且可以让我们深入了解该功能的工作原理。里面是以下评论:

%// Internal use only: option is optional and if present and equal to
%// 'noUI' this function returns methods information without displaying 
%// the table. `

经过一些反复试验后,我发现以下情况有效:

[titles,data] = methodsview(myApp,'noui');

...并返回两个类型为java.lang.String[][]的数组。

从那里我发现了几种以有意义的方式呈现数据的方法:

  • 表:

    dataTable = cell2table(cell(data));
    dataTable.Properties.VariableNames = matlab.lang.makeValidName(cell(titles));
    

    Output as a table...

  • 单元格数组:

    dataCell = [cell(titles).'; cell(data)];
    

重要说明:在表格中,“Return Type”列标题重命名为ReturnType,因为表标题必须是有效的MATLAB标识符as mentioned in the docs