假设有两组数据x和y。
x=[1,2,3];
y=[3,4,5];
要用这两组数据在matlab中画图,并粘贴到word文档中。首先用代码创建word文档
word = actxserver('Word.Application');%打开word服务器
document = word.Documents.Add;%新建doc文档
word.Visible = 1; %doc文档可见
selection = word.Selection;%定位光标位置
开始画图:首先定义一个figure,并设定它的尺寸大小。可按像素或按厘米定义尺寸大小,具体描述在下面的注释当中。用plot命令画图,并添加图例,进行字体大小和线型调整。
明确一个概念,matlab画图是在“图窗”这个画板上绘制我们需要的曲线等“图像”。
f2 = figure();
% 设置figure图窗相对于电脑屏幕的尺寸:[图窗左边界距离屏幕左边界的距离,图窗下边界距离屏幕下边界的距离,图窗x轴方向长度,图窗y轴方向长度]
set(gcf,'Position',[100 100 280 230]);
% 设置figure图窗中所画图像的尺寸:[图像左边界距离图窗左边界的距离,图像下边界距离图窗下边界的距离,图像x轴方向长度,图像y轴方向长度]
set(gca,'Position',[0.1 0.15 0.83 0.76]);
% 以厘米为单位定义尺寸大小
set(gcf,'unit','centimeters','Position',[10 10 9.5 10]);
set(gca,'unit','centimeters','Position',[1 1 8 8.5]);
plot(x,y,'k','LineWidth',1.5);% 画图
set(gca,'FontSize',7);% 设置图中字体大小
xlabel('x');ylabel('y');title('画图','FontSize',7);
legend('画图','Location','NorthWest','FontSize',7);
将所画图片发送到剪切板上。
这一步可以用print或hgexport命令,笔者目前感觉用前者较好,因为前者能将图窗中的图片“原封不动”粘贴到word中,而后者在粘贴过程中存在类似缩放,有时会出现图例遮挡曲线的情况——总之就是和图窗预览看到的不一样,原因暂时不明,有大佬知道的话求解释。
print(f2,'-dbitmap');
然后粘贴到word文档中。
selection.Start = selection.end;
selection.Range.PasteSpecial; % 粘贴
总体效果如下