matlab - 使用 Excel 通过在 Matlab 中编写的脚本绘制圆形图。使用 COM\VBA

标签 matlab vba com graph

我需要在Matlab中写一个脚本,它会从Excel表中读取一些数据,并在Matlab的图形中绘制一个圆图。然而,我被建议使用 Excel 工具来绘制它。在 Excel 中绘制圆图并不难,但我仍然没有找到任何方法让它在 Matlab 中工作,使用 Matlab 的图形。我已经在其他论坛上问过这个问题,但没有收到任何答复。如果有任何帮助,我将不胜感激。

最佳答案

于是,我想通了如何在Matlab的图中使用ActiveX控件。

首先,您需要安装驱动程序 mschrt20.ocx(可从 Internet 免费下载)。在 32 位系统中,您必须将它放在 C:/System32 中,然后通过在 cosole(以管理员身份)中键入“regsvr32 mschrt20.ocx”来安装它。

然后创建一个Matlab图形并把一个ActiveX对象放到它上面,保存。要激活它,请向 Matlab 的解释器输入如下内容:

 anyone = actxcontrol('MSChart20Lib.MSChart.2');
 anyone.get;
 get(anyone,'ChartData')

现在您可以看到对象的所有属性。在指南中选择正确的属性“charType”,并在需要时将字段“Legend”设置为“Visible”。

要使用 ActiveX 对象绘制饼图,您需要设置其字段“ChartData”的含义。这是一个单元格 2xn。在下面的示例中使用它:

   S = cell(2, 3);
   S(1,: ) = {'first', 'second', 'third'} ; %legend
   S(2,: ) = {1, 10, 5} ; %meanings
   set(handles.activex1,'ChartData', S);

这就是它的工作原理。 ActiveX 控件还有一些其他功能。

关于matlab - 使用 Excel 通过在 Matlab 中编写的脚本绘制圆形图。使用 COM\VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10395109/

相关文章:

matlab - 这段用于标准化数据的代码是如何工作的?

javascript - 单元格范围内的 Google 电子表格脚本正则表达式

excel - 将excel VBA中另存为对话框上的 "Cancel"文本更改为 "Review"

c++ - 从非 COM 静态库中删除对 OleInitialize 的调用是否安全?

c# - 如何使用 C# 控制台应用程序获取回收站中的文件列表

matlab - 不同采样频率的不同长度的声音文件

database - MATLAB 数据库工具箱的开源替代品

matlab - 使用 MATLAB 比较文件

excel - 为什么我的 ADO Access 连接给出的结果与 Access 应用程序中运行的相同查询不同?

com - Mac OS 中 COM 的等价物是什么?