matlab中的图片保存方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二种方式是用copy 命令copy 成metafile 格式(通过copy option项选定)
到剪切板上,然后直接粘贴到word 文件中,双击图片,选择’填充‘项为无,即可
对图片中的任意曲线编辑,也可以在VISIO中编辑。

matlab 下的xlabel 项,grid ,坐标刻度,曲线的粗细,
线型等都可以任意编辑。

图形的大小可在关闭图片状态下用鼠标任意修改,还可以用
鼠标加shift键剪去你不想要的部分。

你可以先把图形保存下来,使用命令print -dmeta figure1
figure1为你想要保存的名字,然后再插入到word中去
要把图形从Matlab拷到Word?本文可能有些帮助
浏览国内大学生的论文,偶尔可以见到这样的惨剧:
拜托,位图截屏,而且分辨率还这么低(当然~)?这样的文章当然不能被优质地打印。

高质量印刷文章除了照片(通常也是高分辨率的)外,图表都应是矢量的,这点可以参考IEEE论文的要求。

插一句,本科阶段不用TeX也就罢了,博士阶段应该强制了吧。

至于研究生……大多还是继续Word吧。

下面,进入正题——将Matlab图形优雅的搬运进Word。

最简便有效的办法是Copy Figure,图形效果还好。

Windows下更一般的办法是——把图形存为emf格式,从打印效果看,与直接Copy的效果完全一致。

话说emf——Enhanced Metafile Format,Windows增强元文件——可谓历史悠久,Win9x之前就有了,其难得一见的图标即证明这一点(好亲切~好怀旧……):
关于EMF格式,闲来无事的可以浏览一下MSDN的这段简短介绍:/en-us/library/ff548726(VS.85).aspx[2010-5-8 查阅],亦或维基英文的Windows_Metafile[2010-5-8 查阅]。

其实也可以存成另一种支持矢量的格式——eps,不过似乎在Windows下没有emf效果好。

(你要存成ai自找麻烦我决不拦你)
Simulink下示波器的图,不能直接拷贝,不过我们可以把仿真出来的数据传到Workspace 中(当然也可以直接加output传过去),再plot之类。

也许选成Array格式画图能相对简单些
另一个技巧是:figure窗口弄小点,这样里面的文字相对更大一些,线条相对也更粗,如果你不介意额外调整的话。

Update:
Copy Figure默认设置是尽可能用元文件传送,不过也可以设置成用位图,具体设置路径在:[File]>[Preferences...]>Figure Copy Template>Copy Options: Clipboard format
function ceshi_Word
clear all;
clc;
x=[1:0.1:3];
y=sin(x);
z=cos(x);
ht=figure(1); %第一个图
plot(x,y);
ht1=figure(2); %第二个图
plot(x,z);
%设定测试Word文件名和路径
filespec_user=[pwd '\停留时间分布.doc'];
%判断Word是否已经打开,若已打开,就在打开的Word中进行操作,
%否则就打开Word
try
Word = actxGetRunningServer('Word.Application');
catch
Word = actxserver('Word.Application');
end;
%设置Word属性为可见
set(Word, 'Visible', 1);
%返回Word文件句柄
documents = Word.Documents;
%若测试文件存在,打开该测试文件,否则,新建一个文件,并保存,文件名为测试.doc if exist(filespec_user,'file');
document = invoke(documents,'Open',filespec_user);
else
document = invoke(documents, 'Add');
document.SaveAs(filespec_user);
end
content = document.Content;
selection = Word.Selection;
paragraphformat = selection.ParagraphFormat;
%页面设置
document.PageSetup.TopMargin = 60;
document.PageSetup.BottomMargin = 45;
document.PageSetup.LeftMargin = 45;
document.PageSetup.RightMargin = 45;
%设定内容起始位置和标题
set(content, 'Start',0);
title='停留时间分布曲线';
set(content, 'Text',title);
set(paragraphformat, 'Alignment','wdAlignParagraphCenter');
%设定标题字体格式
%rr=document.Range(0,10);
%rr.Font.Size=16;
%rr.Font.Bold=4;
%设定下面内容的起始位置
end_of_doc = get(content,'end');
set(selection,'Start',end_of_doc);
%另起一段
selection.TypeParagraph;
%如果当前工作文档中有图形存在,通过循环将图形全部删除
shape=document.Shapes;
shape_count=shape.Count;
if shape_count~=0;
for i=1:shape_count;
shape.Item(1).Delete;
end;
end;
%将第一个图形复制到粘贴板
hgexport(ht, '-clipboard');
%将图形粘贴到当前文档里,并设置图形属性为浮于文字上方selection.Range.PasteSpecial;
shape.Item(1).WrapFormat.Type=3;
shape.Item(1).ZOrder('msoBringInFrontOfText');
end_of_doc = get(content,'end');
set(selection,'Start',end_of_doc);
%另起一段
selection.TypeParagraph;
%将第二个图形复制到粘贴板
hgexport(ht1, '-clipboard');
%将图形粘贴到当前文档里,并设置图形属性为浮于文字上方selection.Range.PasteSpecial;
shape.Item(1).WrapFormat.Type=3;
shape.Item(1).ZOrder('msoBringInFrontOfText');
%删除图形句柄
delete(ht);delete(ht1);
function ceshi
clear all;
clc;
x=[1:0.1:3];
y=sin(x);
z=cos(x);
ht=figure(1); %第一个图
plot(x,y);
ht1=figure(2); %第二个图
plot(x,z);
%设定测试Word文件名和路径
filespec_user=[pwd '\停留时间分布.doc'];
%判断Word是否已经打开,若已打开,就在打开的Word中进行操作,%否则就打开Word
try
Word = actxGetRunningServer('Word.Application');
catch
Word = actxserver('Word.Application');
end;
%设置Word属性为可见
set(Word, 'Visible', 1);
%返回Word文件句柄
documents = Word.Documents;
%若测试文件存在,打开该测试文件,否则,新建一个文件,并保存,文件名为测试.doc if exist(filespec_user,'file');
document = invoke(documents,'Open',filespec_user);
else
document = invoke(documents, 'Add');
document.SaveAs(filespec_user);
end
content = document.Content;
selection = Word.Selection;
paragraphformat = selection.ParagraphFormat;
%页面设置
document.PageSetup.TopMargin = 60;
document.PageSetup.BottomMargin = 45;
document.PageSetup.LeftMargin = 45;
document.PageSetup.RightMargin = 45;
%设定内容起始位置和标题
set(content, 'Start',0);
title='停留时间分布曲线';
set(content, 'Text',title);
set(paragraphformat, 'Alignment','wdAlignParagraphCenter');
%设定标题字体格式
%rr=document.Range(0,10);
%rr.Font.Size=16;
%rr.Font.Bold=4;
%设定下面内容的起始位置
end_of_doc = get(content,'end');
set(selection,'Start',end_of_doc);
%另起一段
selection.TypeParagraph;
%如果当前工作文档中有图形存在,通过循环将图形全部删除shape=document.Shapes;
shape_count=shape.Count;
if shape_count~=0;
for i=1:shape_count;
shape.Item(1).Delete;
end;
end;
%将第一个图形复制到粘贴板hgexport(ht, '-clipboard');
%将图形粘贴到当前文档里selection.Range.Paste;
%将第二个图形复制到粘贴板hgexport(ht1, '-clipboard');
%将图形粘贴到当前文档里selection.Range.Paste;
%删除图形句柄
delete(ht);delete(ht1);
复制代码。

相关文档
最新文档