MATLAB图形存入word文档
- 格式:ppt
- 大小:202.00 KB
- 文档页数:15
在Matlab 里复制代码到word产生中文乱码的恢复方法在Matlab下复制代码到word下,因西文字体缺失中文字符(尽管matlab里可以正常看到中文),其中的中文注释复制到word文件后会变成字母型乱码,如下所示:Word 界面下中文注释乱码面对这类乱码,如何解救?根据发现的时间不同,这里提供两个方法:1)复制时产生在matlab的界面是这样的:Matlab 界面复制到word后,是这样的Word 界面在复制的文字最后,有一个这样的图标:,用鼠标点击它,或者按Ctrl键,便弹出:,选择,中文便不会再乱码,如下图所示:这样虽失去了原有格式,但中文不再乱码了。
如果你不嫌麻烦,可以在乱码的基础上,对乱码一个一个手动更改,这样就不会变更格式,但太麻烦了,不是么?2)已经保存的word不小心保存了乱码文件,或者网上下载的word就包含前面所说的乱码。
在找不到原代码(m文件等)的情况下,对于word下已经形成的中文乱码,如何修复成中文?这里有一个办法:安装Ultra-Edit ANSI和简体中文,如下图所示。
(此编码是windows下matlab命令框和m文件使用的编码;若是linux 下的matlab,则是UTF-8。
这里只针对windows下的matlab。
)txt格式文件,编码选择ANSI/ASCII,然后保存它。
然后在word 将含乱码的m 文件代码复制到上图空的sample.txt (或你设定的名字),保存它,这时在Ultra-Edit 内看到的乱码和word 上看到的是一样的,表明乱码对应的编码信息没有被破坏。
这时,就可以关闭Ultra-Edit ,以windows 默认的记事本(简体中文状态或支持简体中文的条件下),看到的就不是乱码而是中文注释了。
如果要保留word 里原来含乱码的matlab 代码的格式,可将里面的注释乱码一个一个换成相应记事本txt 里的中文注释就可以了。
如果觉得这样麻烦,可以将全部代码替换成记事本txt 中的字符,这样可能不再保留原有格式。
matlab保存图片的四种方法1 从菜单保存〈<回目录可以保存为fig,eps,jpeg,gif,png,bmp等格式。
2 复制粘贴 <<回目录edit-—-———〉copy figure,再粘贴到其他程序,如word3 saveas函数〈〈回目录saveas(gca,filename,fileformat)不过此函数不好用常常出错4 print函数〈<回目录〉〉 x=—pi:2*pi/300:pi;〉〉 y=sin(x);>〉 plot(x,y);〉> print(gcf,'-dpng','abc。
png')%保存为png格式的图片. 〉〉 pwdD:\Matlab\work>〉 dir〉〉 % 现在到 D:\Matlab\work 应该能找到图片 abc.png 了〉> figure(2) % 新建一个句柄为2的图形窗口。
〉〉 plot(x,cos(x)); % 在句柄为2的图形窗口上画图。
>> grid>> print(2,’—djpeg’,’D:\abc.jpeg’); %将句柄为2的图形保存为jpeg/jpg格式的图片,>> %文件名为'D:\abc。
jpeg’。
4。
2 用法:print(图形句柄,存储格式,文件名);〈<回目录图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3.用gcf可以获取当前窗口句柄. 指定存储格式。
常用的有:png格式:‚-dpng‘ (推荐这一种,与bmp格式一样清晰,文件也不大)jpeg: ‚-djpeg‘(文件小,较清晰)tiff: ‚—dtiff‘bmp: ‚—dbitmap‘(清晰,文件极大)gif: ‚-dgif‘(文件小但不清晰)文件名在matlab中自动保存plot图像的程序Step 1. 先使所画的图最大化,即占满整个屏幕scrsz = get(0,’ScreenSize');figure1=figure('Position',[0 30 scrsz(3) scrsz(4)-95]);或者(下面这种情况会把windows系统下面的任务栏也保存到图片中,不太好)scrsz = get(0,’ScreenSize’);figure1=figure(’Position’,[0 0 scrsz(3) scrsz(4)-66]);% Step 2. 生成数据并画图x=rand(100,1);plot(x);saveas(gcf,’filename’,'bmp’);saveas(gcf,'filename',’emf’);saveas(gcf,'filename’,’jpg');% Step 3. 清理现场clear all; clc; close all;下面的代码可以创建一个大小为整个屏幕的四分之一,位置在屏幕在左上角的一个figure对像,使用root对象的ScreenSize属性来取得屏幕的尺寸,ScreenSize是由四个元素组成的数据:[left,bottom,width,height])。
Matlab中的图怎样插入Word效果最好这两天在用Word写论文,还是觉得LaTex好用。
这个插图的问题折腾了好久,结合微博上大牛的指导,终于有一个比较完美的解决方案。
最后插入Word的图生成PDF看起来是这个样子的:这是一个效果比较好的矢量图。
下面简单总结一下怎么能在Word和PDF中都看到类似这样的效果。
如果直接在Matlab的绘图窗口上点Edit——Copy Figure,到Word是这样的效果:似乎效果也还可以,但是这样的图有一个很大的问题,就是生成PDF以后坐标轴的刻度线总是有小的弯曲,一直以来我都不能理解为什么会出现这样的问题:这个问题真的让人很无语。
我们知道一般来说通用的矢量图是eps,但是Matlab直接生成eps后拷贝到Word里是这样的效果:这种在Word中的锯齿形状,让人看起来心情很不好。
虽然最后生成PDF后很清楚,但撰写文档的时候很难看。
所以不建议直接插eps。
Matlab也支持生成其他Windows 系统中的图片格式,如果我们选择导出成emf(在Matlab画图窗口中点File——Export Setup,可以对输出文件的清晰度,如300或600dpi,等参数进行设置,可以选择导出emf),插入Word中会很清晰,但生成的PDF也有个小问题:坐标轴会多一个小突起出来:关于这个问题我也是百思不得其解。
最终方案是:先用Matlab导出eps,再用CorelDRAW打开eps,将eps文件再导出成emf文件,就可以得到第一个图中最完美的解决方案。
综上所述,如果选择直接拷贝图片,生成的PDF坐标轴会弯曲(这个绝对不是个案,几年前些论文的时候就碰到了,真是个郁闷的情况);如果选择eps,在Word中会很难看;如果选择emf,生成的坐标轴也会有小问题。
最终解决方案是先生成eps,再用CorelDRAW导出成emf,这是目前看起来相对最好的办法了。
对于Visio等其他Office系列的软件,直接选择导出成emf就可以。
function ceshi_Word%设定测试Word文件名和路径filespec_user=[pwd '\测试.doc'];%判断Word是否已经打开,若已打开,就在打开的Word中进行操作,%否则就打开WordtryWord = actxGetRunningServer('Word.Application');catchWord = 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);elsedocument = invoke(documents, 'Add');document.SaveAs(filespec_user);endcontent = 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'); % 居中% set(paragraphformat, 'Alignment','wdAlignParagraphLeft'); % 居左% set(paragraphformat, 'Alignment','wdAlignParagraphRight'); % 居右%设定标题字体格式rr=document.Range(0,10);rr.Font.Size=18; % 字体大小设置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;%随机产生标准正态分布随机数,画直方图,并设置图形属性zft=figure('units','normalized','position',...[0.280469 0.553385 0.428906 0.251302],'visible','off');set(gca,'position',[0.1 0.2 0.85 0.75]);data=normrnd(0,1,1000,1);hist(data);grid on;xlabel('考试成绩');ylabel('人数');%将图形复制到粘贴板hgexport(zft, '-clipboard');%将图形粘贴到当前文档里,并设置图形属性为浮于文字上方% selection.Range.PasteSpecial;%将图形粘贴到当前文档里,并设置图形属性为嵌入式selection.Range.Paste;% shape.Item(1).WrapFormat.Type=3;% shape.Item(1).ZOrder('msoBringInFrontOfText');%删除图形句柄delete(zft);。
仿真波形如何转到Word的文档一、仿真波形如何转到Word,及如何修改与标注坐标步骤如下:1、先从Matlab/Simulink中选出时钟Clock 以及To Workspace模块并连接起来,如下图1-1。
然后打开To Workspace,如下图1-2,接着设置参数:修改Variable name为t(可自己定义),Sample time为2e-4(可自己定义),Save format为Array。
图1-1图1-22、选择To Workspace接到需要的位置,比如要测A相电流,打开To Workspace,设置如下图1-3,同图1-2类似,只要修改Variable name为ia(可自己定义)。
注:Sample time必须与步骤1中的Sample time一致。
图1-33、步骤1、2完成后,开始仿真运行,仿真完成后,在Matlab命令行中输入plot(t,ia),然后单机Enter键确定后,便可显示如下图1-4所示的仿真波形。
图1-44、点击Edit,如下图1-5所示,然后选择Edit图标下的Axes Properties…,显示结果如下图6所示。
图1-5图1-65、在图1-6下方的方框内点击X Axis,选择X Label:输入t/s,即标注了横坐标时间t,单位为秒(s),如下图1-7所示。
然后可以修改X Limits参数,即横坐标范围。
图1-7同理设置Y Axis。
选择Y Label:输入i a/A,即标注了纵坐标电流i a,单位为安培(A)。
6、完成上述步骤后,选择Edit图标下的Copy Figure命令,如图1-8所示。
最后粘帖到Word中,得到所需a相电流波形i a如图1-9所示。
图1-8图1-9注:可以采用Edit 图标下的Axes Properties 中的grid 命令,会产生如下图1-10所示的效果。
当然还可以采用Subplot 等命令,将2、3个仿真波形放到一个图中对比显示。
Q;如何将matlab中的scope图形转到word中,至少三种方法1、软件截图,这个就不多说了2、使用Matlab命令,直接保存为图片set(0,'ShowHiddenHandles','On')set(gca,'color','w')saveas(gcf,'mypic.jpg')这样就在Matlab的当前路径下得到一个白色背景的jpg文件3、使用跳出figure的菜单set(0,'ShowHiddenHandles','On')set(gcf,'menubar','figure')此时那个scope是不是多了一个菜单栏了,现在使用edit→copy figue就可以把图片复制到剪贴板中了Simulink利用Scope输出及绘制仿真波形技巧(2008-09-28 21:45:23)在用Simulink做仿真时,我们经常会用到示波器Scope来观察波形,它可以对波形进行局部放大、按横、纵座标放大,非常方便,但是如果我们要保存波形时,就最好别直接拷贝Scope波形了,因为它的背景是黑的,而且不能进行线形修改和标注,不适合作为文档用图。
一般的做法是将数据输出到工作空间,然后用画图指令Plot画图。
输出到工作空间的方法一般有这么几种:1.添加To Workspace模块;2.添加out模块;3.直接用Scope输出。
本人比较懒,一般不再添加其他输出模块,直接选用方法3。
当然不是说放一个Scope就能数出数据的,需要对Scope进行设置。
设置界面如下:这里最好把Limit data points to last勾掉,因为很有可能你的数据会超过5000个。
勾选Save data to Workspace,变量类型可以选结构体,结构体带时间,以及向量(后面我们会分别介绍这几种变量类型的画图方法)。
在word中运行Matlab【1】在Matlab目录下,找到m-book.dot文件,双击运行【2】如果禁用宏,改成运行宏【3】这时打开的word,有一个notebook的菜单【4】选中要运行的程序【5】在notebook中,点击define input cell,这时程序变绿色了【6】再在notebook中,点击evaluate calc zone,就运行了。
///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// //////////////////////////使用matlab的notebook技术可以方便的实现这个功能,但是使用notebook的前提是matlab必须处在打开状态,因此主要用来制作科技文档。
装完Word和matlab后,在matlab主环境下运行“notebook –setup”看到“notebook setup is complete”就是安装成功了。
在Word的normal.dot模板相同目录下会有一个m-book.dot的文件,所谓在word中使用matlab其实就是加载这个模板,可以手工启动matlab,然后输入“notebook”,但这个方法比较麻烦。
可以在Word->工具->模板和加载项->模板中添加这个文件,这样word主菜单上就多了一个Notebook菜单,写一个命令后选中命令文字,然后Notebook->define input cell,指明这是一个输入,然后Notebook->Evaluate Cell就可以求解了。
与matlab中一样,命令后以分号结尾,不显示输出。
///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// ///////////////////////////////Matlab的Notebook软件工具设置及程序运行博战捷摘要介绍了在Matlab中如何设置Notebook软件工具,将Matlab程序嵌入中文Word。
matlab里的模糊工具箱绘制隶属度函数曲线导入到word的方法在fuzzy logic toolbox里有fuzzy membership function可以编辑隶属度函数,非常方便,但是我们写论文一般要把相应的曲线导入到word里,怎样将隶属度函数曲线导入到word里呢?本人也苦苦的寻找了好久。
方法如下:先看看matlab帮助怎么说的:plotmfPlot all of the membership functions for a given variableSyntaxplotmf(fismat,varType,varIndex)DescriptionThis function plots all of the membership functions in the FIS called fismat associated with a given variable whose type and index are respectively given b y (varType 'input'or 'o u tpu t'), and varIndex. This function can also be used with the MATLAB function, subplot.Examplesa = readfis('t ipper');plotmf(a,'inpu t',1)看明白了吧?原来强大的matlab给我们提供了这个函数给我们用,plotmf(模糊名,‘输入还是输出’,第几个输入或输出)。
就可以画出来图像,然后和平时的方法一样再进行edit》copy figure就可以了。
图 错误!文档中没有指定样式的文字。
-1
图 错误!文档中没有指定样式的文字。
-2
1.先说图片格式,推荐两种:.tif 和.eps 。
图 错误!文档中没有指定样式的文字。
-3 2.如果你是用word 写论文的话,建议用tif 格式优于eps 格式,因为后者导入到word 后,文字会变得很粗;不过如果你是用latex 写的话,就用eps 吧,那效果会更好。
3.在生成figure 时,在file->expor setup 里,可以设置生成图片的 size (如2.5cm*8.89cm )、Custom renderer,Resolution(dpi):(600)、Fonts and
Lines。
设置好以后,可以将自己设置的图片格式保存Save:mty_paper_type。
以后可以从Load settings from里直接选中以保存的格式,再将图片Export 成xxx.tif 或xxx.eps。
即可!!!。