文档库 最新最全的文档下载
当前位置:文档库 › Fortran调用matlab作图示例

Fortran调用matlab作图示例

Fortran调用matlab作图示例
Fortran调用matlab作图示例

Fortran调用matlab,在这里实现,是通过系统调用了matlab程序,matlab程序运行了一个model模块。具体示例操作如下:

说明:实例用的是CVF+matlab7.1 不过相信都是一样的,因为代码跟编译器无关。

该实例来自网络,程序内容是用fortran自动生成一个随机矩阵,然后将矩阵的转置写入一个txt文件,然后用系统调用matlab程序,读取文件,求特征值,然后对特征值进行某变化后作图。更多关于matlab读取已有文件的知识可以找相关书籍参考。

1、Fortran中编写代码:

program main

implicit none

integer,parameter :: rows=100, cols=100

real*8 :: M(rows,cols)

integer :: i

call random_seed()

call random_number(M)

open(100,file='matrix M.txt')

write(100,'(E25.15)') transpose(M)

close(100)

call system("matlab -r test")

end program main

2、Matlab建立一个test.m 文件,注意后缀,是model文件,编写为:

clear all; close all; clc;

M=load('matrix M.txt');

eigvalues=eig(M);

plot(real(eigvalues),imag(eigvalues),'-r*');

title('矩阵M的特征值');

xlabel('特征值实数部分');

ylabel('特征值虚数部分');

3、注意,test.m文件要放在编译完成的Fortran文件的工程文件夹下。Matlab软件一定是安装版的,这样系统才能调用。第一次安装后,需要重启电脑一次,系统才能确认自动调用matlab程序。

代码可以完全拷贝过去运行,没有问题。祝成功!

matlab基础作图实例

实验三 MATLAB 的绘图 一、实验目的:掌握利用MATLAB 画曲线和曲面。 二、实验内容: 1、 在不同图形中绘制下面三个函数t ∈[0,4π]的图象,3个图形分别是 figure(1),figure(2),figure(3)。 ) sin(41.0321t e y t y t y t -== =π 说明:y 1 线型:红色实线,y 2 线型:黑色虚线,y 3: 线型:兰色点线 分别进行坐标标注,分别向图形中添加标题‘函数1’,‘函数2’, ‘函数3’ 解答: 源程序与图像: t=0:0.1:4*pi; y_1=t; y_2=sqrt(t); y_3=4*pi.*exp(-0.1*t).*sin(t); figure(1) plot(t,y_1,'-r'); title('函数1'); xlabel('t');ylabel('y_1'); figure(2) plot(t,y_2,'--k'); title('函数2'); xlabel('t');ylabel('y_2'); figure(3) plot(t,y_3,':b'); title('函数3'); xlabel('t');ylabel('y_3'); 246 8101214 02468 10 12 14 函数1 t y 1

0246 8101214 0.511.522.533.54函数2 t y 2 2 4 6 8 10 12 14 -8-6-4-2024 681012函数3 t y 3 2、 在同一坐标系下绘制下面三个函数在t ∈[0,4π]的图象。 (用2种方法来画图,其中之一使用hold on ) 使用text 在图形适当的位置标注“函数1”“函数2”,“函数3” 使用gtext 重复上面的标注,注意体会gtext 和text 之间的区别 解答: 方法一: 程序与图形: t=0:0.1:4*pi; y_1=t; y_2=sqrt(t); y_3=4*pi.*exp(-0.1*t).*sin(t); figure(1) plot(t,y_1,'-r'); gtext('函数1');

MATLAB命令画出simulink示波器图形

毕业论文答辩已经结束很长时间了,现在总结一下我在做毕业论文时的用MATLAB命令画出simulink示波器图形的一点方法,我也是MATLAB初学者,所用方法不算高明方法,并且这些方法在论坛应该都能找到,请大家见谅。 第一步,将你的示波器的输出曲线以矩阵形式映射到MATLAB的工作空间内。 如图1所示,双击示波器后选择parameters目录下的Data history,将Save data to workspace勾上,Format选择Array,Variable name即你输入至工作空间的矩阵名称,这里我取名aa。在这之后运行一次仿真,那么你就可以在MATLAB的工作空间里看到你示波器输出曲线的矩阵aa。如图2所示。 第二步,用plot函数画出曲线 双击曲线矩阵aa,将可以看到详细情况,我这里的aa矩阵是一个1034行,3 列的矩阵,观察这个矩阵即可以发现,这个矩阵的第一列是仿真时间,而由于我仿真时示波器内输出的是两条曲线,所以第二列和第三列即分别代表了这2条曲线。同时大家要注意,在simulink中我们有时往往在示波器中混合输出曲线,那么就要在示波器前加一个MUX混合模块,因此示波器内曲线映射到的工作空间的矩阵是和你的MUX的输入端数有关,如果你设置了3个MUX输入端,而实际上你只使用了2个,那么曲线矩阵仍然会有4列,并且其中一列是零,而不是3列。 理解曲线矩阵的原理之后,我们就可以用plot函数画出示波器中显示的图形了。 curve=plot(aa(:,1),aa(:,2),aa(:,1),aa(:,3),'--r') %aa(:,1)表示取aa的第一列,仿真时间 %aa(:,2)表示取aa的第二列,示波器的输入一 %aa(:,3)表示取aa的第三列,示波器的输入二 %--r表示曲线2显示的形式和颜色,这里是(red) set(curve(1),'linewidth',3) %设置曲线1的粗细 set(curve(2),'linewidth',3) %设置曲线2的粗细 legend('Fuzzy','PID') %曲线名称标注 xlabel('仿真时间(s)') %X坐标轴名称标注 ylabel('幅值') %Y轴坐标轴标注 title('Fuzzy Control VS PID') %所画图的名称 grid on %添加网格 运行上述命令后即可以看到用MATLAB命令画出的图形了,你可以在图形出来之后继续进行编辑。

MATLAB 与C C + + 、FORTRAN语言混合编程

MATLAB 与C/ C + + 、FORTRAN语言混合编程摘要:对MATLAB 与C/ C + + 和FORTRAN 语言进行混合编程的常用方法进行了介绍,分析了其实现方式和各自的利弊,并用实例对MEX 文件实现方式进行了较详细的论述. 关键词: MATLAB ; C/ C + + ; FORTRAN ; 混合编程 中图分类号: TP313 文献标识码: A 文章编号:16722948X(2004) 0620547205 1 混合编程的意义及其实现方式 1. 1 混合编程的意义 MATLAB 语言具有功能强大、开发效率高等诸 多优点, 已在工程实际中得到广泛应用, 但是与 FORTRAN、C/ C + + 等语言相比,其执行效率较低, 特别是当程序中含有大量循环语句(例如迭代计算) 时,MATLAB 就有些力不从心, 速度很慢, 而运用 FORTRAN 等擅长数值计算语言进行编程,其运行效 率高. 一方面,如果放弃MATLAB 强大功能和数量 众多的应用工具箱,无疑是资源的极大浪费. 另一方 面,针对工程实际,人们用FORTRAN、C/ C + + 语言 已编写了大量实用程序,如果将其重新改写成M 文 件移植到MATLAB 环境中,不仅要花费大量的时间 和精力,而且有时还降低了其运行效率. 可否将二者 优势互补呢? 混合编程就是其有效的解决途径. 1. 2 混合编程的实现 正是考虑到上面这些原由,MATLAB 系统提供 了其应用程序接口(Application Program Interface) 来 解决这些问题. API 主要包括3 部分:MEX 文件——— 外部程序调用接口,用来在MATLAB 环境下调用 FORTRAN、C/ C + + 语言编写的程序;MAT 文件应 用程序———数据输入输出接口,用于MATLAB 系统 与外部环境之间互传数据; 计算引擎函数库——— MATLAB 处于后台作为一个计算引擎,与其它应用 程序建立客户机/ 服务器关系,在其它应用程序中调 用[1 ,2 ] . 1. 2. 1 MEX 文件 MEX 文件是按照一定格式,用FORTRAN 或C/ C + + 语言编写的源程序,在MATLAB 下借助相应 的编译器,生成的动态链接函数的统称. 在Windows 操作系统下,是用MATLAB 附带的批处理mex. bat 来编译生成文件后缀名为. dll (Dynamic Link Li2 brary) 动态链接库文件,该文件可在MATLAB 环境 下,像命令函数一样直接运行和调用,使用起来极为 方便. 采取MEX 文件方式,是重复利用已有FOR2 TRAN、C/ C + + 程序,让MATLAB 和FORTRAN、

fortran与matlab如何连接

编译环境配置: projects -> setting ->link -> Object/library modulus kernel32.lib libmx.lib libmat.lib libeng.lib integer engOpen,mxCreateDoubleMatrix,mxGetPr,engPutArray,engGetArray integer ep,p_matX,p_matY,p_matfi0,p_mat_ux,p_mat_uy,p_nbound integer status %启动引擎 ep=engOpen('matlab') if (ep .eq. 0) then write(6,*) 'Can''t start MA TLAB engine' stop endif % 在Matlab下执行语句 if (engEvalString(ep,'i_contour=0;').ne.0) then write(6,*) 'engEvalString failed' stop endif % 建立数组指针 pmatX=mxCreateDoubleMatrix(ndiv,ndiv,0) % 建立该数组在Matlab工作空间的名字 call mxSetName(pmatX, 'matX') % 从Matlab工作空间获取变量建立连接fi0(Matlab)→ p_matfi0 (Fortran) p_matfi0=engGetArray(ep,'fi0'); (注: p_matfi0指针是联系Fortran变量和Matlab变量的通道和桥梁) % 更新Fortran数组p_matfi0 (Fortran)→fi0 (Fortran) call mxCopyPtrToReal8(mxGetPr(p_matfi0),fi0,(nx+2)*(ny+2)) % fi0 (Fortran)→ p_matfi0 (Fortran) call mxCopyReal8ToPtr(fi0,mxGetPr(p_matfi0),(nx+2)*(ny+2)) % p_matfi0 (Fortran)→fi0(Matlab) status = engPutArray(ep,p_matfi0) if (status.ne.0) then write(6,*) 'engPutMatrix failed'

MATLAB画图入门篇--各种基本图形绘制的函数与实例

MATLAB画图入门篇--各种基本图形绘制的函数与实例【来自网络】 一.二维图形(Two dimensional plotting) 1.基本绘图函数(Basic plotting function):Plot,semilogx,semilogy,loglog,polar,plotyy (1).单矢量绘图(single vector plotting):plot(y),矢量y的元素与y元素下标之间在线性坐标下的关系曲线。 例1:单矢量绘图 y=[00.62.358.311.71517.719.420];plot(y) 可以在图形中加标注和网格, 例2:给例1的图形加网格和标注。 y=[00.62.358.311.71517.719.420];plot(y) title('简单绘图举例');xlabel('单元下标');ylabel('给定的矢量');grid (2).双矢量绘图(Double vector plotting):如x和y是同样长度的矢量,plot(x,y)命令将绘制y元素对应于x元素的xy曲线图。 例:双矢量绘图。 x=0:0.05:4*pi;y=sin(x);plot(x,y) (3).对数坐标绘图(ploting in logarithm coordinate):x轴对数semilogx,y轴对数semilogy,双对数loglog, 例:绘制数组y的线性坐标图和三种对数坐标图。 y=[00.62.358.311.71517.719.420]; subplot(2,2,1);plot(y);subplot(2,2,2);semilogx(y) subplot(2,2,3);semilogy(y);subplot(2,2,4);loglog(y) (4)极坐标绘图(Plotting in polar coordinate): polar(theta,rho)theta—角度,rho—半径 例:建立简单的极坐标图形。 t=0:.01:2*pi;polar(t,sin(2*t).*cos(2*t)) 2.多重曲线绘图(Multiple curve plotting) (1)一组变量绘图(A group variable plotting) plot(x,y) (a)x为矢量,y为矩阵时plot(x,y)用不同的颜色绘制y矩阵中各行或列对应于x的曲线。 例1: x=0:pi/50:2*pi;y(1,:)=sin(x);y(2,:)=0.6*sin(x);y(3,:)=0.3*sin(x);plot(x,y) (b)x为矩阵,y为矢量时绘图规则与(a)的类似,只是将x中的每一行或列对应于y进行绘图。。 例2: x(1,:)=0:pi/50:2*pi;x(2,:)=pi/4:pi/50:2*pi+pi/4;x(3,:)=pi/2:pi/50:2*pi+pi/2; y=sin(x(1,:));plot(x,y) (c)x和y是同样大小的矩阵时,plot(x,y)绘制y矩阵中各列对应于x各列的图形。 例3: x(:,1)=[0:pi/50:2*pi]';x(:,2)=[pi/4:pi/50:2*pi+pi/4]';x(:,3)=[pi/2:pi/50:2*pi+pi/2]'; y(:,1)=sin(x(:,1));y(:,2)=0.6*sin(x(:,1));y(:,3)=0.3*sin(x(:,1)); plot(x,y) 这里x和y的尺寸都是101×3,所以画出每条都是101点组成的三条曲线。如行列转置后就会画出101条曲线,每条线

matlab画图命令积累

matlab画图命令积累 aimit 2009-08-26 23:49 发表 subplot(3,2,1) plot(x) title('默认格式') subplot(3,2,2) plot(x) set(gca,'xtick',[1 3 6 8]); set(gca,'ytick',[]); title('X自定义间隔,Y关闭') subplot(3,2,3) plot(x) set(gca,'xtick',[1 3 6 8]); set(gca,'xticklabel',sprintf('%03.4f|',get(gca,'xtick'))) set(gca,'ytick',[2 4 5 7]); set(gca,'yticklabel',{'Two','Four','Five','Seven'}); title('XY自定义间隔、精度及显示方式') subplot(3,2,4) plot(x) set(gca,'xminortick','on');%style 5 set(gca,'ticklength',[0.05 0.025]); set(gca,'tickdir','out'); title('XY坐标刻度显示方式') subplot(3,2,5) plot(x) set(gca,'xtick',[min(x) (max(x)+min(x))/2 max(x)]); set(gca,'ytick',[min(x) (max(x)+min(x))/2 max(x)]); title('论文中常用的标准3点式显示') x=20:10:20000; y=rand(size(x)); subplot(3,2,6) semilogx(x,y); set(gca,'XLim',[20 20000]); set(gca,'XMinorTick','off'); set(gca,'XTick',[20 31.5 63 125 250 500 1000 2000 4000 8000 16000]); set(gca,'XGrid','on');

(完整版)matlab基本语句

第2章M ATLAB程序设计 MATLAB语言为解释型程序设计语言。在程序中可以出现顺序、选择、循环三种基本控制结构,也可以出现对M-文件的调用(相当于对外部过程的调用)。 由于 MATLAB开始是用FORTRAN语言编写、后来用 C语言重写的,故其既有FORTRAN的特征,又在许多语言规则方面与C语言相同。 2.1 顺序结构语句 在顺序结构语句中,包括表达式语句、赋值语句、输入输出语句、空语句等。

2.1.1 表达式语句 格式: 表达式,%显示表达式值 表达式;%不显示表达式值 表达式%显示表达式值 如: x + y, sin(x); –5 最后的表达式值暂保存在变量ans中。 2.1.2 赋值语句 格式: v =表达式,%结果送v并显示v v =表达式;%结果送v不显示v v =表达式%结果送v并显示v 2.1.3 空语句 格式: , ; 2.1.4 输入语句

1、input语句(实际上是函数) 格式1: input(提示字符串) 功能: 显示提示字符串,可输入数字、字符串(两端用单引号括起)、或表达式 格式2: input(提示字符串,'s') 功能: 显示提示字符串,并把输入视为字符串 2、yesinput语句 格式: yesinput(提示字符串,缺省值,值范围) 功能: 显示提示字符串和缺省值,若只打入回车则以缺省值作为输入值,若输入的值不在指定范围内则认为输入无效,B并等待用户重新输入。 如: t=yesinput('指定线的颜色',… 'red','red|blue|green') 运行结果如下: 指定线的颜色(red):yellow %不在值内

做一个实例,搞定MATLAB界面编程

做一个实例,搞定MATLAB界面编程 2009-04-12 16:55 作者:彭军 带插图版本的pdf格式文件,请下载: https://www.wendangku.net/doc/8a9738147.html,/source/1144420 一个实例搞定MATLAB界面编程 作者:彭军 邮件:pengjun@https://www.wendangku.net/doc/8a9738147.html, 博客:https://www.wendangku.net/doc/8a9738147.html,/pengjun 下面请跟我一步一步做一个图像处理的程序,如果您坚持做完这个实例,我想MATLAB界面编程对您而言,就没有什么难度了。当然,我这里说的是,您首先要有一定的MATLAB编程基础。还有,我的MATLAB版本是2008a。在2008a以前的版本中没有工具栏编辑器,如果需要工具栏要手动写程序,这个我就不多讲了。好了,废话少说,跟我来吧! 1、在MATLAB的命令窗口(Command Window)中运行guide命令,来打开GUIDE 界面,如下: 2、然后,选择空模板(Blang GUI),点击OK,即可打开GUIDE的设计界面,如下: 3、点击工具栏上的菜单编辑器(Menu Editor),打开菜单编辑器,如下: 4、在Menu Bar中新建一个菜单项,名字为“文件”,其他设置请看下图: 5、在“文件”菜单下添加菜单项:“打开”,“保存”,“退出”。见下图:如果需要在菜单项“退出”上面添加一个分割线的话,选中“Separator above this item”就行了。 保存我的界面为pjimage.fig. 保存完毕之后,会自动打开pjimage.m文件,而我们所有的程序都是要写在这个M文件里面的。在编程中,我们的每一个鼠标动作都对应一个Callback函数。那么我们的菜单项也是如此的。 在界面上,单击鼠标右键选择“Property Inspector”,即可打开属性窗口。当我们点击不同的控件时,其对应的属性都会在这里显示,我们可以进行修改。最主要的属性莫过于Tag属性和String属性。 设置当前Figure窗口的Tag属性为:figure_pjimage,窗口的标题(Name属性)为:图像处理实例。如下: 然后,点击工具栏的保存按钮。之后,点击工具栏的运行按钮(Run Figure)。注意,工具栏的图标都会有提示的,像运行按钮的提示就是Run Figure. 我们会看到如下的界面: 那说明,我们保存的.fig文件的目录不是当前目录,但是没关系啊,我们只要

matlab 常用画图调整命令汇总(带例子)

Matlab常用画图调整 1.%单y轴 2.plot(t*1e+9,abs(iGG)/max(abs(iGG)),'k','linewidth',2); 3.axis([-5,5,0,1]) 4.xlabel('时间/ns'); 5.ylabel('幅度/a.u.'); 6.set(get(gca,'title'),'FontSize',10,'FontName','宋体');%设置标题字体大小,字型 7.set(get(gca,'XLabel'),'FontSize',10,'FontName','Times New Roman');%设置X坐标标题字 体大小,字型 8.set(get(gca,'YLabel'),'FontSize',10,'FontName','Times New Roman');%设置Y坐标标题字 体大小,字型 9.set(gca,'FontName','Times New Roman','FontSize',10)%设置坐标轴字体大小,字型 10.text(0.3,1.2,'(a)','FontSize',10,'FontName','Times New Roman');%设置文本字型字号 11.set(gca,'XTick',[0 10 20 30 40 50 60 70 80 90])%设置X坐标轴刻度数据点位置 12.set(gca,'XTickLabel',{'0','10','20','30','40','50','60','70','80','90'})%设置X坐 标轴刻度处显示的字符 13.set(gca,'YTick',[-15 -10 -5 0 5 10 15])%设置X坐标轴刻度数据点位置 14.set(gca,'YTickLabel',{'-15','-10','-5','0','5','10','15'})%设置Y坐标轴刻度处显示的 字符 15.axis([0,90,-20,20]) 16.set(gca,'YTickLabel',[]);%只显示y坐标轴刻度,不显示y坐标轴的值; 17.set(gca,'XTickLabel',[]);%只显示x坐标轴刻度,不显示x坐标轴的值; 18.set(gca,'ytick',[]);%y轴的坐标值和刻度均不显示; 19.set(gca,'xtick',[]);%x轴的坐标值和刻度均不显示; 20. 21.figure; 22.set(gcf,'Position',[400,300,600,200]);%设定plot输出图片的尺寸。参数含义为: xmin,ymin,width,height 23.%plot的默认参数为[232,246,560,420],Position的单位可以用units属性制定,units属性的值 可以是下列字符串中的任何一 24.%种:pixel(像素,缺省值)、normalized(相对单位)、inches(英寸)、centimeters(厘米)、 points(磅)。 25.%指定大小后,在figure中用text输出的文字大小,设置的是多大,在WORD中显示的就是多大。 26.set(gcf,'units','centimeters','Position',[4,3,6,2]);%指定fiugre的尺寸为6cm宽,2cm 高。 27.%也可以直接用下属语句: 28.fiure('units','centimeters','Position',[4,3,6,2]); 29. 30.%改变ylabel离坐标轴的距离 31.hc=findobj(allchild(gcf),'Type','axes'); 32.hc2=findobj(allchild(hc),'Type','text'); 33.set(hc2(3),'Position',[0 0 0]);

Matlab经典案例

1、三维曲线 >> t=0:pi/50:10*pi; >> plot3(sin(2*t),cos(2*t),t) >> axis square >> grid on 2、一窗口多图形 >> t=-2*pi:0.01:2*pi; >> subplot(3,2,1) >> plot(t,sin(t)) >> subplot(3,2,2) >> plot(t,cos(t)) >> subplot(3,2,3) >> plot(t,tan(t)) >> axis([-pi pi -100 100]) >> subplot(3,2,4) >> plot(t,cot(t)) >> axis([-pi pi -100 100]) >> subplot(3,2,5) >> plot(t,atan(t)) >> subplot(3,2,6) >> plot(t,acot(t)) 3、图形样式、标注、题字(也可以利用菜单直接 Insert) >> x=0:pi/20:2*pi; >> plot(x,sin(x),'b-.') >> hold on >> plot(x,cos(x),'r--') >> hold on >> plot(x,sin(x)-1,'g:')

>> hold on >> plot(x,cos(x)-1) >> xlabel('x'); >> xlabel('x轴'); >> ylabel('y轴'); >> title('图形样式、标注等'); >> text(pi,sin(pi),'x=\pi'); >> legend('sin(x)','cos(x)','sin(x)-1','cos(x)-1'); >> [x1,y1]=ginput(1) %利用鼠标定位查找线上某点的值x1 = 2.0893 y1 = -0.5000 >> gtext('x=2.5') %鼠标定位放置所需的值在线上 4、 >> fplot('[sin(x),cos(x),sqrt(x)-1]',[0 2*pi]) M文件:myfun.m 内容如下: function y=myfun(x) y(:,1)=sin(x); y(:,2)=cos(x); y(:,3)=x^(1/2)-1; 再运行:>> fplot('myfun',[0 2*pi]) 同样可以得到右图 5、 >> [x,y]=fplot('sin',[0 2*pi]); >> [x1,y1]=fplot('cos',[0 2*pi]); >> plot(x,y,'-r',x1,y1,'-.k') >> legend('y=sinx','y=cosx') 6、

Matlab中文教程共63页

MatLab简介 MATLAB是什么? 典型的使用包括: 数学和计算 算术发展模型, 模拟,和原型 数据分析,开发,和可视化 科学和工程图学 应用发展包括图形用户界面设计 MATLAB表示矩阵实验室。 MATLAB系统 MATLAB系统由5主要的部分构成: 1. MATLAB语言。这是高阶的矩阵/数组语言,带控制流动陈述,函数,数据结构,输入/输出,而且面向目标的编程特点。 Ops 操作符和特殊字符。 Lang 程序设计语言作。 strfun 字符串。 iofun 输入/输出。

timefun 时期和标有日期。 datatypes数据类型和结构。 2. MATLAB工作环境。这是你作为MATLAB用户或程序编制员的一套工具和设施。 3. 制图这是MATLAB制图系统。它为2维上,而且三维的数据可视化,图象处理,动画片制作和表示图形包括高阶的指令在内。它也为包括低阶的指令在内,允许你建造完整的图形用户界面(GUIs),MATLAB应用。制图法功能在MATLAB工具箱中被组织成5文件夹: graph2d 2-的维数上的图表。 graph3d 三维的图表。 specgraph 专业化图表。 graphics 制图法。 uitools 图形用户界面工具。 4. MATLAB的数学的函数库。数学和分析的功能在MATLAB工具箱中被组织成8文件夹。 elmat 初步矩阵,和矩阵操作。 elfun 初步的数学函数。 specfun 专门的数学函数。 matfun 矩阵函数-用数字表示的线性的代数。 datafun 数据分析和傅立叶变换。 polyfun 插入物,并且多项式。

matlab中plot基础绘图实例

%plot基本绘图 x=0:0.1:2*pi; y=sin(x) plot(x,y) %两个参数都是矩阵 x1=0:0.1:2*pi; x2=-pi:0.1:pi; y1=sin(x) y2=cos(x) plot(x1,y1,x2,y2)%多条曲线绘制在统一坐标轴上 %plot只有一个参数 x=linspace(0,2*pi,200) y=sin(x) plot(y) y2=cos(x) y3=y+i*y2%横坐标实部为正弦,纵坐标虚部为余弦,构成一个圆形 plot(y3) axis equal%将上述图型的横纵坐标调整为相同,使得椭圆变为正圆 %plot含有多个参数 x1=linspace(0,2*pi,200) x2=linspace(0,2*pi,100) x3=linspace(0,2*pi,50) y1=cos(x1) y2=sin(x2) y3=0.01*exp(x3) plot(x1,y1,x2,y2,x3,y3)%当x1,x2,x3不同维数(点数不同)可用高方法绘制 %线性选项 x=0:0.1:2*pi; y=sin(x) plot(x,y,'r')%颜色,g为绿色,y为黄色,k为黑色,默认b为蓝色 plot(x,y,'*')%形状,*为*状,p为五角星,.为小方块 plot(x,y,'--')%--为短线,:为虚线,-.为点虚线 plot(x,y,'*r--')%可以组合使用,只需用一对单引号把要求全部括起来 %标注 x=0:0.1:2*pi; y=sin(x) plot(x,y) xlabel('x')%横坐标轴名称 ylabel('y')%纵坐标轴名称

MATLAB中绘图命令介绍

MATLAB中绘图命令介绍 本节将介绍MATLAB基本xy平面及xyz空间的各项绘图命令,包含一维曲线及二维曲面的绘制。 plot是绘制一维曲线的基本函数, 但在使用此函数之前,我们需先定义曲线上 每一点的x 及y座标。 下例可画出一条正弦曲线: close all; x=linspace(0, 2*pi, 100); % 100个点的x坐标 y=sin(x); % 对应的y坐标 plot(x,y); 小整理:MATLAB基本绘图函数 plot: x轴和y轴均为线性刻度(Linear scale) loglog: x轴和y轴均为对数刻度(Logarithmic scale) semilogx: x轴为对数刻度,y轴为线性刻度 semilogy: x轴为线性刻度,y轴为对数刻度 若要画出多条曲线,只需将座标对依次放入plot函数即可: hold on 保持当前图形,以便继续画图到当前坐标窗口 hold off 释放当前图形窗口 title(’图形名称’)(都放在单引号内) xlabel(’x轴说明’) ylabel(’y轴说明’)

text(x,y,’图形说明’) legend(’图例1’,’图例2’,…) plot(x, sin(x), x, cos(x)); 若要改变颜色,在座标对後面加上相关字串即 可: plot(x, sin(x), 'c', x, cos(x), 'g'); 若要同时改变颜色及图线型态,也是在座标对後 面加上相关字串即可: plot(x, sin(x), 'co', x, cos(x), 'g*'); 小整理:plot绘图函数的叁数字元、颜色元、图 线型态, y 黄色.点k 黑色o 圆w 白色x xb 蓝色+ +g 绿色* *r 红色- 实线c 亮青色: 点线m 锰紫色-. 点虚线-- 虚线plot3 三维曲线作图 图形完成后,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围: axis([0, 6, -1.2, 1.2]); axis函数的功能丰富,其常用的用法有: axis equal :纵横坐标轴采用等长刻度 axis square:产生正方形坐标系(默认为矩形)

FORTRAN学习中的一些小心得

FORTRAN 心得 第一部分:一些小心得 1Fortran不区分大小写 2 Fortran有5种基本数据类型,integer,real, character, logical, complex 3 fortran fixed format格式中的变量赋初值一般用DATA,因为它不能用:: 4 real(kind=8) a这种格式只使用于Fortran90,Fortran77中要使用real*8或real(8) 5 FORTRAN中FREE与FIXED两种格式do循环的区别: Fortran 95使用end do来结束循环。 Fortran 77使用DO循环要麻烦一点,它不使用END DO来结束循环,而是使用行号来结束循环,程序代码要在DO的后面写清楚这个循环到哪一行程序代码结束。 Fortran 77中,经常会使用CONTINUE这个命令来结束循环。因为CONTINUE这个命令没有实际的用途,刚好可以拿来做封装使用。 6 循环的流程控制: 循环中的cycle命令相当于c++里的continue命令,用于结束一次循环 循环中的exit命令好比c里面的break,用于结束循环 7 不使用do循环,单纯用GOTO语句也能设计循环程序,但不推荐使用GOTO语句 7 fortran有等价声明:即用equivalence(a,b),这样使得a,b使用同一块内存,这样可以节省内存,有时可精简代码。 8 fortran77中只能用单引号。(还有疑问,因为fixed format能用双引号) 9 逻辑运算符 == /= > >= < <= !Fortran90用法 .EQ. .NE. .GT. GE. .LT. .LE. !Fortran77用法 9 PAUSE,CONTINUE,STOP pause 暂停程序执行,按enter可继续执行 continue 貌似没什么用处,可用作封装程序的标志 STOP 命令用来结束程序,要谨慎使用 10 数组元素之间要用逗号分隔,而不能像matlab一样既可以用逗号也可以用空格,fortran 的数组元素之间不能用空格。 11 数组的声明: Fortran 77中数组的声明,必须使用DIMENSION命令 Integer a; !先声明a是整型 Dimension a(10) !再声明a是大小为10的数组 Fortran 95中可以用简单的方法: Integer a(10) !最简单的方法 Integer,dimension(10):: a !另一种方法 12 数组的赋值: Fortran 77中数组的声明,可以使用DATA命令或隐含式循环来赋初值; Fortran 95中可以直接设置初值;如:integer ::a(5)=(/1,2,3,4,5/);此时,括号和除号之间不能有空格;

教你如何用matlab绘图(全面)

强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。 本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。 一.二维绘图 二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。 一.绘制二维曲线的基本函数 在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。 1.plot函数的基本用法 plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。plot函数的应用格式 plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。 例51 在[0 , 2pi]区间,绘制曲线 程序如下:在命令窗口中输入以下命令 >> x=0:pi/100:2*pi; >> y=2*exp(-0.5*x).*sin(2*pi*x); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。 例52 绘制曲线 这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线:

matlab绘图命令

Matlab绘图命令 1.fill/patch 功能用颜色填充二维多边形。 用法fill(X,Y,C) 用x和y中的数据生成多边形,用c指定的颜色填充它。 其中c为色图向量或矩阵。若c是行向量,则要求c的维数等于 x和y 的列数,若c为列向量,则要求c的维数等于x和y的行 数。 fill(X,Y,ColorSpec) 用ColorSpec指定的颜色填充由x和y定义的多边 形 fill(X1,Y1,C1,X2,Y2,C2,…) 指定多个要填充的二维区域 fill(…,'Prop ertyName',PropertyValue) 允许用户对一个patch图形对象 的某个属性设定属性值。 h = fill(…) 返回patch图形对象句柄的向量,每一个patch对象对应 一个句柄。 注意: 1. 若x或y是一矩阵,另一个是向量,向量应是维数与矩阵的行数相等的 列向量或是维数等于矩阵列数的行向量时,函数fill将向量复制成与矩阵同型的矩阵。函数fill将矩阵x与y中列向量中的数据生成多边形的顶点。 2. 颜色阴影类型决定于用户在参数中列出的颜色,若用户用ColorSpec指定 颜色,命令fill生成平坦阴影模式(flat-shaded)多边形,同时设置补片对象(patch)的FaceColor属性为相应的RGB颜色矩阵。 3. 若用户用参量c指定所用颜色,命令fill按坐标轴属性Clim的比例缩小 c中的元素,之后,c成为引用当前色图的下标矩阵。 4. 若c为行向量,命令fill生成平面阴影的多边形,c的每一元素决定由矩 阵x,y的每一列定义的多边形内的颜色,每一补片对象的FaceColor属性被设置为'flat',x,y的每一行元素变成第n块补片对象的Cdata属性值,其中n为矩阵x或y中的相应的列。 5. 若c为一列向量或一矩阵,命令fill运用一线性插值法计算每一节点的颜 色,以便用插值颜色填充多边形的内部。它设置补片对象的FaceColor属性为‘interp’,且在一列中的元素变成每一补片的Array Cdata属性值。若c为一列向量,命令fill用该 向量复制成需要大小的尺寸。 例7-6 >>t = (1/16:1/8:1)'*2*pi; >>x = exp(t).*sin(t); >>y = t.*cos(t); >>fill(x,y,'k') >>grid on 图7-7 Fill/patch命令,填充颜色: patch([f(1) f f(end)]/1e6,[-150 10*log10(PSD_RDSS_norm) -150], 'r', 'FaceAlpha', 0.5);hold on;

(完整版)《MATLAB语言及其应用》教案

MATLAB语言及其应用 教 案 任课教师:罗靖宇 任课班级:09通信(1)(2) 教材:MATLAB程序设计与应用(第二版) 作者:刘卫国主编出版社:高等教育出版社

内容: 书籍简介:本书以MATLAB 7.0版为蓝本介绍MATLAB功能与应用强调理论和实践相结合贴近读者需要注重讲清有关数学方法和算法原理前提下介绍MATLAB功能;注重和有关学科领域结合,突出应用书中有许多应用实例些实例既是对MATLAB重点和难点诠释又可以更好地帮助读者应用MATLAB来解决实际问题具有很强代表性。 全书分为基础篇应用篇和实验篇基础篇包括MATLAB系统环境MATLAB数据及其运算MATLAB矩阵分析与处理 MATLAB程序设计MATLAB图MATLAB数值计算MATLAB符号计算应用篇包括MATLAB图形用户界面设计MATLAB Notebook使用MATLAB Simulink 仿真软件MATLAB外部程序接口技术MATLAB应用实验篇和教学内容相配合包括15实验以帮助读者更好地上机操作。本书可作为高等学校理工科各专业大学生或研究生学习教材也可供广大科技工作者参考。 第1章MATLAB系统环境 1.1 MA TLAB概貌 1.1.1 MA TLAB 发展 1.1.2 MA TLAB 主要功能 1.1.3 MA TLAB功能演示 1.2 MA TLAB环境准备 1.2.1 MA TLAB 安装 1.2.2 MA TLAB 启动与退出 1.3 MA TLAB操作界面 1.3.1 主窗口 1.3.2 命令窗口 1.3.3 工作空间窗口 1.3.4 当前目录窗口和搜索路径 1.3.5 命令历史记录窗口 1.3.6 Stalt菜单 1.4 MA TLAB帮助系统 1.4.1 帮助命令 1.4.2 帮助窗口 1.4.3 演示系统 第2章MATLAB数据及其运算 2.1 MA TLAB数据特点 2.2 变量及其操作 2.2.1 变量与赋值 2.2.2 变量管理 2.2.3 数据输出格式 2.3 MA TLAB矩阵表示 2.3.1 矩阵建立 2.3.2 冒号表达式 2.3.3 矩阵拆分 2.4 MA TLAB数据运算 2.4.1 算术运算 2.4.2 关系运算 2.4.3 逻辑运算 2.5 字符串 2.6 结构数据和单元数据 2.6.1 结构数据 2.6.2 单元数据 第3章MATLAB矩阵分析与处理 3.1 特殊矩阵 3.1.1 通用特殊矩阵 3.1.2 用专门学科特殊矩阵 3.2 矩阵结构变换 3.2.1 对角阵与三角阵 3.2.2 矩阵转置与旋转 3.3 矩阵求逆与线性方程组求解 3.3.1 矩阵逆与伪逆 3.3.2 用矩阵求逆方法求解线性方程组 3.4 矩阵求值 3.4.1 方阵行列式值 3.4.2 矩阵秩与迹 3.4.3 向量和矩阵范数 3.4.4 矩阵条件数 3.5 矩阵特征值与特征向量 3.6 矩阵超越函数 第4章MATLAB程序设计 4.1 M文件 4.1.1 M文件分类 4.1.2 M文件建立与打开 4.2 程序控制结构 顺序结构、选择结构、循环结构 4.3 函数文件 4.4 程序调试 第5章MATLAB绘图 5.1 二维图形

MATLAB绘图功能大全

Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。 本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。 一、二维绘图 二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。 (一)绘制二维曲线的基本函数 在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。 1.plot函数的基本用法

plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x 坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。plot函数的应用格式 plot(x,y)其中x,y为长度相同的向量,存储x坐标和y坐标。 例51 在[0 , 2pi]区间,绘制曲线 程序如下:在命令窗口中输入以下命令 >> x=0:pi/100:2*pi; >> y=2*exp(-0.5*x).*sin(2*pi*x); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。 例52 绘制曲线 这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线: >> t=-pi:pi/100:pi; >> x=t.*cos(3*t); >> y=t.*sin(t).*sin(t); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 以上提到plot函数的自变量x,y为长度相同的向量,这是最常见、最基本的用法。实际应用中还有一些变化。

相关文档