matlab,如何得到清晰的矢量图,而不是一个截图


1.MATLAB中3中不同的清理变量、显示窗口及图形的命令:

clear;  清除变量
clc;    清理当前命令窗口

clf;  清除当前激活的figure

2.MATLAB/Figure图形保存

(1)我们在使用MATLAB绘制出数据的各种图形需要保存,不少同学都是直接用屏幕截图的方法来做的,但这样做出来的图并不清晰,不便于后续应用于处理,且不符合论文使用要求。实际上,我们可以有下面更好的办法来处理图形:
在MATLAB的Figure窗口,点击菜单栏上的Edit,选择Copy Figure,然后在文档中将光标放到需要插入图片的位置,然后Ctrl+V,就可以得到清晰的图片;
需要注意的是,这时候的图片相当于一部分空白区域,你可以用word图片工具栏的“裁剪”功能把图片空白区域消除;
另外,如果需要对图片的大小进行拉伸,最好不要直接用鼠标拖,这样容易导致图中的点线分布变形,可以右键点击图片,选择“大小”,设置图片的尺寸。
------------------------------------------------------------------------------------------------------------------------------------------
为了便于后续处理和应用,建议大家形成一个良好的习惯,即把绘制所得的Figure窗口直接保存为.fig文件,以后就可以多次打开它,对图形进行修改处理。
 
 
(2)在做Simulink仿真时,使用的Scope波形显示模块实际上也是一个Figure窗口,不过MATLAB把Scope的菜单栏隐藏起来了。在MATLAB的命令行输入以下指令来恢复显示Scope的Figure菜单栏。

  set(0,'ShowHiddenHandles','on');
  set(gcf,'menubar','figure');

另外,也可以使用下面的指令:

  shh = get(0,'ShowHiddenHandles');

  set(0,'ShowHiddenHandles','On');

  set(gcf,'menubar','figure');

  set(gcf,'CloseRequestFcn','closereq');

  set(gcf,'DefaultLineClipping','Off');

  set(0,'ShowHiddenHandles',shh);

 
             
  
然后点击菜单栏上的Edit,选择Copy Figure来保持波形,也可以选择Figure Properties来调整Scope的各种图形属性,包括添加标签,更改背景颜色,调整波形曲线的线型、粗细等等。
----------------------------------------------------------------------------------------------------
 
网上发现的codes,可以将Figure中的图形变成透明背景的图片:  
   set(gcf,'color','none'); 
   set(gca,'color','none');
 
  • 输出流量 (m^3)
 
set(gcf,'color','none');%图形背景设为无色
set(gca,'color','none');%坐标轴背景设为无色,这条更重要,通常图形背景的白色实际为坐标轴背景色
 

3.如何将Excel中的数据导入MATLAB并在MATLAB中作出图像

在MATLAB中使用命令xlsread读取Excel中的数据到MATLAB里:(此时读取的文件须在MATLAB默认路径下)
 
 C = xlsread('filename.xlsx');
 C = xlsread('filename.xlsx','range');range表示读取excel的range范围
 C = xlsread('filename.xlsx', 'sheet', 'range');
 
例如:C=xlsread('data.xlsx','2013858_1','A1:C41');
  
将数据读取到MATLAB的工作空间之后,使用plot指令画图:
 
 plot(C(:,1),C(:,2),'r+',C1(:,1),C1(:,2),'k*');
 
   ----------------------------------------------------------------------------------------------------------
 

 4.Simulink仿真时,如何将Scope波形数据输出到工作空间,然后用plot指令画图

首先,对Scope进行如下设置:
运行Simulink,将数据输出到主界面的工作空间中,接着用plot画图:

figure;   

plot(ScopeData(:,1),ScopeData(:,2),'LineWidth',1.5);

hold on;

plot(ScopeData(:,1),ScopeData(:,3),'r:','LineWidth',1.5);

legend('正弦波','锯齿波');

hold off;

 

5.MATLAB中plot的用法 

图形修饰函数:
  grid on (/off);  给当前图形标记添加(取消)网格
  xlabel('string');标记横坐标
  ylabel('string');标记纵坐标
  title('string');给图形添加标题
  text(x,y,'string');在图形的任意位置增加说明性文本信息
  gtext('string');利用鼠标添加说明性文本信息
  axis([xmin xmax ymin ymax]);设置坐标轴的最大最小值
例如:
  xlabel('independent variable X');
  ylabel('Dependent Variable Y1 & Y2');
  title('Sine and Cosine Curve');
  text(1.5,0.3,'cos(x)');
  gtext('sin(x)');
  axis([0 2*pi -0.9 0.9]);
 
------------------------------------------------------------------------------------------------
 
一般情况下,MATLAB每次使用plot函数进行图形绘制,将重新产生一个图形窗口。但有时希望后续的图形能够和前面所绘制的图形进行比较。一般有两种方法:
 
(1)采用hold on/off命令:
  plot(x,y1,x,y2);
  hold on;
  plot(x,y3);
  plot(x,y4);
  hold off;
(2)采用subplot(m,n,k)指令将图形窗口分成mxn个子图,k是子图编号。
  x=0:pi/10:2*pi;
  y1=sin(x);
  y2=cos(x);
  y3=exp(x);
  y4=log(x);
  subplot(2,2,1);
  plot(x,y1);
  subplot(2,2,2);
  plot(x,y2);
  subplot(2,2,3);
  plot(x,y3);
  subplot(2,2,4);
  plot(x,y4);

 

 

。。。。the end!有需要再补充

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM