当前位置:文档之家› MATLAB与C++对接

MATLAB与C++对接

MATLAB与C++对接
MATLAB与C++对接

浅析VC与matlab接口编程(一)

作者:邓科

下载源代码

Matcom是mathTools公司推出的一个能将M文件转化成相同功能C++代码的工具。相比Matlab自带的编译器Compiler,用Matcom转化代码要简单和方便得多。本文将结合作者编程经验,以VC6.0和Matcom为例,详细介绍如何利用Matcom进行VC与Matlab的联合编程。

Matcom安装安装Matcom前要已求安装VC6.0。在安装过程中出现选择编译器对话框,选择“是”(图一)。出现选择是否安装Matlab时,选“否”。其他选项采用默认设置。Matcom可以独立于Matlab运行,但需要外部的C++编译器,指定Matlab的位置是为了让编译文件中需要的一些系统函数找到路径用的。

图一

安装完成后,启动界面MIDEVA(图二)。MIDEVA集成开发环境包括命令行窗口、变量列表窗口、命令列表窗口和编译链接信息窗口等几部分,并有详细的帮助文档。

图二

Matcom命令输入方法与Matlab相同。如果安装在中文版操作系统时,输入命令前加一空格。(如图三)。

图三

下面详细介绍如何将m文件编译后放入VC中。

1、启动MIDEVA ,File->New,新建如下Test1.m文件:

x=1:0.1:10; y=sin(x); plot(x,y);

将文件保存(如图四)。

图四

m文件保存的默认位置为:matcom安装目录\matcom45,生成的C++文件保存的默认位置为:matcom安装目录\matcom45\Debug\,本例matcom安装目录为C盘即C:\matcom45\Debug\,在该目录下将会产生Test1.h、Test1.cpp、Test1.r 、Test1.obj文件。

2、在VC中用MFC Wizard(exe)创建一个基于对话框名为Example的工程。在面板上添加一个ID为IDC_BUTTON1按扭。

3、将C:\matcom45\Debug目录下的Test1.cpp文件的内容拷贝到

void CExamleDlg::OnButton1()下,(如图五)。

图五

4、将C:\matcom45\lib\下的matlib.h 和v4501v文件和C:\matcom45\debug 下的Test1.h文件拷贝到工程Example目录下,然后在VC中将库文件和头文件加入到工程中:工程->添加工程->Files,选择刚刚拷贝到Example目录下的matlib.h 、v4501v和Test1.h文件(如图六)。

图六

5、在ExamleDlg.cpp中加入如下代码:

#include "matlib.h"

#include "Test1.h"

6、在void CExamleDlg::OnButton1()中分别添加一个初始化类库调用函

数”initM(MATCOM_VERSION)”和一个结束类库调用函数”exitM()”(如图七)。

图七

运行程序,点击画图按扭(如图八)。

图八

程序的release版本需要ago4501.dll、v4501v.dll、v4501.lib三个文件的支持。以上只是介绍了VC和Matcom接口编程的一个简单例子,功能并不完善,也远远达不到一个软件所要求的水平,但只要熟悉了VC和Matcom 接口编程的基本原理和方法,相信大家一定能够编出优秀的软件。

如果有什么问题可以联系我。我的QQ:44760299 邮箱:c_dinco@https://www.doczj.com/doc/c014313182.html,

让ansys与matlab协同工作2——如何使用ansys调用matlab

(2007-09-27 08:56:36)

转载

标签:

知识/探索

matlab

ansys

相互调用

协同工作

之前转载的帖子也说明了一种很好的交互工作的方法。我这里再说一种方法,供参考。

matlab和ansys都会等着被调用的程序结束运行之后再执行下面的命令,这个特性允许我们把程序的控制权在matlab和ansys之间相互传递,实现ansys与matlab的相互调用和交互工作。

1.matlab中调用ansys的方法(之前的帖子里贴过,不再详述了。补充一点就是ansys运行中产生的中间文件都将在调用它的matlab 文件夹下,除了-o内容指定的output文件),下面是一个例子:!"D:\Program Files\Ansys Inc\v100\ANSYS\bin\intel\ansys100.exe" -b -i d:\inp\vm1.mac -o "d:\out put\1.txt"

2.ansys中调用matlab的例子:

/sys,matlab /r t1;t2

其中t1.m,t2.m是我们自定义的、指定matlab启动后自动运行的脚本文件,内容分别如下:

t1.m

disp('test1 ok~~')

t2.m

disp('test2 ok~~')

运行上述命令后,matlab将启动并运行t1.m和t2.m,返回信息如下:>> t1;t2

test1 ok~~

test2 ok~~

当然,在matlab /r 后面还可以加上matlab内置的函数,如下面的例子

/sys,matlab /r hf=figure;peaks;saveas(hf,'matlab.emf');exit

这样,matlab就会被调用来绘制一幅图形、保存起来(保存在当前的ansys文件夹)之后退出。退出后,程序的控制权又交给ansys。有一点需要注意的是,ansys调用matlab之后,matlab脚本中一定要有exit才能将程序控制权重新交给ansys。matlab调用ansys时(batch mode)并不需要*exit,程序运行完毕后会自动退出。

iomiga老兄说的那个例子应该也可以用下面的方法考虑实现,那就是在ansys结束一步运行后,调用matlab,在matlab中完成材料属性计算等工作并保存为文件,之后退出。ansys就会继续进行下

面的步骤了(如读入matlab生成的数据,并计算下一步。)

Matlab上机实验答案

Matlab上机实验答案 实验一 MATLAB运算基础 1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。 >> z1=2*sin(85*pi/180)/(1+exp(2)) z1 = >> x=[2 1+2i; 5]; >> z2=1/2*log(x+sqrt(1+x^2)) z2 = - + + -

>> a=::; >> z3=(exp.*a)-exp.*a))./2.*sin(a++log(+a)./2) (>> z33=(exp*a)-exp*a))/2.*sin(a++log(+a)/2)可以验证z3==z33,是否都为1) z3 = Columns 1 through 5 + + + + + Columns 6 through 10 + + + + + Columns 11 through 15 + + + + + Columns 16 through 20 + + + + +

Columns 21 through 25 + + + + + Columns 26 through 30 + + + + + Columns 31 through 35 + + + + + Columns 36 through 40 + + + + + Columns 41 through 45 + + + + + Columns 46 through 50

+ + + + + Columns 51 through 55 + + + + + Columns 56 through 60 + + + + + Column 61 + (4) 2 2 4 2 01 112 2123 t t z t t t t t ?≤< ? =-≤< ? ?-+≤< ? ,其中t=0:: >> t=0::; >> z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^ 2-2.*t+1) z4 =

matlab试卷合集附答案

一、填空题 1、求可逆矩阵A的逆矩阵的指令是 inv(A) 2、A=[0 2 3 0],B=[4 5 0 0],则X=A&B的显示结果为 0 1 0 0 3、求矩阵A的转置矩阵的指令是: A’ 4、x=[10 -20 30]; a=sign(x);显示结果为 1 -1 1 5、Notebook是Matlab的文字处理工具,启动Notebook有两种方法,即一 种是在 Word 中启动,另一种是在 Matlab 中启动。 6、Matlab7.3提供了非常强大的帮助系统,包括帮助命令、帮助 窗口、HTML格式帮助、pdf格式帮助和帮助演示等。 7、clc命令和clear命令的区别是 clc清除命令窗口所有显示内容; Clear清除所有显示的变量 . 8、命令窗口中的type命令的功能为显示文件的内容 . 9、matlab7.3提供了三种程序调试的工具,包括直接检测调试、专用调试命 令和使用 M文件编辑/调试器。 10、matlab除了最常用的主函数和子函数外,还提供了嵌套函数、私有函数、 重载函数和匿名函数。 11、在matlab7.3中,创建句柄图形对象的命令格式为____________ h_obj=funname(‘PropertyName’,PropertyValue,……)_ 12、计算5*e3*|cos175°|语句为 5*exp(3)*abs(cos(175*pi/180)). 13、创建随机矩阵的指令用rand,创建稀疏矩阵用sparse 14、为图形添加网格使用grid on,使用legend命令添加图例。 1、MATLAB常用操作界面包括命令窗口、工作空间窗口(浏览器)、 命令历史窗口、当前目录窗口、内存数组编辑器、M文件编辑/调试器、 帮助导航/浏览器、图形窗口等。 2、MATLABInf或inf表示无穷大、NaN或nan表示不是一个数、nargout表 示函数输出宗量数目。 3、MATLAB中逗号主要用作要显示计算结果的指令与其后指令的分隔; 用作输入量与输入量之间的分隔符;用作数组元素分隔符号。 4、工作空间浏览器主要用于内存变量的查阅、保存和编辑。 5、MATLAB实现将全下标转换为单下标的指令为Sub2ind、据单下标换算出全 下标的指令为Ind2sub。 6、二维数组的标识有“全下标”标识、“单下标”标识、“逻辑1”标识。 7、在一个元胞数组A中寻访第2行第3列元胞元素用A(2,3);寻访数组第 2行第3列元胞中的内容用A{2,3}。 8、MATLAB中clf用于清除图形窗、clc用于清除指令窗中显示内容、clear 用于清除MATLAB工作空间中保存的变量。 1.已知A=[0 9 6;1 3 0];B=[1 4 3;1 5 0];写出下列各指令运行的结果。 A & B 的运行结果ans= ; A ./ B 的运行结果ans= 。 2. 产生4阶全0方阵的命令为;产生3阶全1方阵的命令为。 3. A=rand(2,5);b=size(A);c=length(A);则b和c的值分别为和。

MATLAB全部实验及答案

MATLAB全部实验及答案 实验一、MATLAB基本操作 实验内容及步骤 4、有关向量、矩阵或数组的一些运算 (1)设A=15;B=20;求C=A+B与c=a+b? (2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与 A.*B? A*B就是线代里面的矩阵相乘 A.*B是对应位置的元素相乘(3)设a=10,b=20;求i=a/b=0.5与j=a\b=2? (4)设a=[1 -2 3;4 5 -4;5 -6 7] 请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全 下标的形式),并将其单下标转换成全下标。 clear,clc a=[1 -2 3;4 5 -4;5 -6 7]; [x,y]=find(a<0); c=[]; for i=1:length(x) c(i,1)=a(x(i),y(i)); c(i,2)=x(i); c(i,3)=y(i); c(i,4)=(y(i)-1)*size(a,2)+x(i); end c

(5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?前面那 个是虚数矩阵,后面那个出错 (6)请写出完成下列计算的指令: a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=? a^2= 22 16 16 25 26 23 26 24 28 a.^2= 1 4 9 9 16 4 25 4 9 (7)有一段指令如下,请思考并说明运行结果及其原因 clear X=[1 2;8 9;3 6]; X( : ) 转化为列向量 (8)使用三元组方法,创建下列稀疏矩阵 2 0 8 0 0 0 0 1 0 4 0 0 6 0 0 0 方法一: clear,clc

潮流计算(matlab)实例计算

潮流例题:根据给定的参数或工程具体要求(如图),收集和查阅资料;学习相关软件(软件自选:本设计选择Matlab进行设计)。 2.在给定的电力网络上画出等值电路图。 3.运用计算机进行潮流计算。 4.编写设计说明书。 一、设计原理 1.牛顿-拉夫逊原理 牛顿迭代法是取x0 之后,在这个基础上,找到比x0 更接近的方程的跟,一步一步迭代,从而找到更接近方程根的近似跟。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0 的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。电力系统潮流计算,一般来说,各个母线所供负荷的功率是已知的,各个节点电压是未知的(平衡节点外)可以根据网络结构形成节点导纳矩阵,然后由节点导纳矩阵列写功率方程,由于功率方程里功率是已知的,电压的幅值和相角是未知的,这样潮流计算的问题就转化为求解非线性方程组的问题了。为了便于用迭代法解方程组,需要将上述功率方程改写成功率平衡方程,并对功率平衡方程求偏导,得出对应的雅可比矩阵,给未知节点赋电压初值,一般为额定电压,将初值带入功率平衡方程,得到功率不平衡量,这样由功率不平衡量、雅可比矩阵、节点电压不平衡量(未知的)构成了误差方程,解误差方程,得到节点电压不平衡量,节点电压加上节点电压不平衡量构成新的节点电压初值,将新的初值带入原来的功率平衡方程,并重新形成雅可比矩阵,然后计算新

的电压不平衡量,这样不断迭代,不断修正,一般迭代三到五次就能收敛。 牛顿—拉夫逊迭代法的一般步骤: (1)形成各节点导纳矩阵Y。 (2)设个节点电压的初始值U和相角初始值e 还有迭代次数初值为0。 (3)计算各个节点的功率不平衡量。 (4)根据收敛条件判断是否满足,若不满足则向下进行。 (5)计算雅可比矩阵中的各元素。 (6)修正方程式个节点电压 (7)利用新值自第(3)步开始进入下一次迭代,直至达到精度退出循环。 (8)计算平衡节点输出功率和各线路功率 2.网络节点的优化 1)静态地按最少出线支路数编号 这种方法由称为静态优化法。在编号以前。首先统计电力网络个节点的出线支路数,然后,按出线支路数有少到多的节点顺序编号。当由n 个节点的出线支路相同时,则可以按任意次序对这n 个节点进行编号。这种编号方法的根据是导纳矩阵中,出线支路数最少的节点所对应的行中非零元素也2)动态地按增加出线支路数最少编号在上述的方法中,各节点的出线支路数是按原始网络统计出来的,在编号过程中认为固定不变的,事实上,在节点消去过程中,每消去一个节点以后,与该节点相连的各节点的出线支路数将发生变化(增加,减少或保持不变)。因此,如果每消去一个节点后,立即修正尚未编号节点的出线支路数,然后选其中支路数最少的一个节点进行编号,就可以预期得到更好的效果,动态按最少出线支路数编号方法的特点就是按出线最少原则编号时考虑了消去过程中各节点出线支路数目的变动情况。 3.MATLAB编程应用 Matlab 是“Matrix Laboratory”的缩写,主要包括:一般数值分析,矩阵运算、数字信号处理、建模、系统控制、优化和图形显示等应用程序。由于使用Matlab 编程运算与人进行科学计算的思路和表达方式完全一致,所以不像学习高级语言那样难于掌握,而且编程效率和计算效率极高,还可在计算机上直接输出结果和精美的图形拷贝,所以它的确为一高效的科研助手。 二、设计内容 1.设计流程图

MATLAB精通科学计算_偏微分方程求解

一、Maple V 系统 Maple V是由Waterloo大学开发的数学系统软件,它不但具有精确的数值处理功能,而且具有无以伦比的符号计算功能。Maple V的符号计算能力还是MathCAD和MATLAB等软件的符号处理的核心。Maple提供了2000余种数学函数,涉及范围包括:普通数学、高等数学、线性代数、数论、离散数学、图形学。它还提供了一套内置的编程语言,用户可以开发自己的应用程序,而且Maple自身的2000多种函数,基本上是用此语言开发的。 Maple采用字符行输入方式,输入时需要按照规定的格式输入,虽然与一般常见的数学格式不同,但灵活方便,也很容易理解。输出则可以选择字符方式和图形方式,产生的图形结果可以很方便地剪贴到Windows应用程序内。 二、MATLAB 系统 MATLAB原是矩阵实验室(Matrix Laboratory)在70年代用来提供Linpack和Eispac k软件包的接口程序,采用C语言编写。从80年代出现3.0的DOS版本,逐渐成为科技计算、视图交互系统和程序语言。MATLAB可以运行在十几个操作平台上,比较常见的有基于W indows 9X/NT、OS/2、Macintosh、Sun、Unix、Linux等平台的系统。 MATLAB程序主要由主程序和各种工具包组成,其中主程序包含数百个内部核心函数,工具包则包括复杂系统仿真、信号处理工具包、系统识别工具包、优化工具包、神经网络工具包、控制系统工具包、μ分析和综合工具包、样条工具包、符号数学工具包、图像处理工具包、统计工具包等。而且5.x版本还包含一套几十个的PDF文件,从MATLAB的使用入门到其他专题应用均有详细的介绍。 MATLAB是数值计算的先锋,它以矩阵作为基本数据单位,在应用线性代数、数理统计、自动控制、数字信号处理、动态系统仿真方面已经成为首选工具,同时也是科研工作人员和大学生、研究生进行科学研究的得力工具。MATLAB在输入方面也很方便,可以使用内部的E ditor或者其他任何字符处理器,同时它还可以与Word6.0/7.0结合在一起,在Word的页面里直接调用MATLAB的大部分功能,使Word具有特殊的计算能力。 三、MathCAD 系统 MathCAD是美国Mathsoft公司推出的一个交互式的数学系统软件。从早期的DOS下的1. 0和Windows下的4.0版本,到今日的8.0版本,功能也从简单的数值计算,直至引用Map le强大的符号计算能力,使得它发生了一个质的飞跃。 MathCAD是集文本编辑、数学计算、程序编辑和仿真于一体的软件。MathCAD7.0 Profe ssional(专业版)运行在Win9X/NT下,它的主要特点是输入格式与人们习惯的数学书写格式很近似,采用WYSWYG(所见所得)界面,特别适合一般无须进行复杂编程或要求比较特殊的计算。MathCAD 7.0 Professional 还带有一个程序编辑器,对于一般比较短小,或者要求计算速度比较低时,采用它也是可以的。这个程序编辑器的优点是语法特别简单。 MathCAD可以看作是一个功能强大的计算器,没有很复杂的规则;同时它也可以和Wor d、Lotus、WPS2000等字处理软件很好地配合使用,可以把它当作一个出色的全屏幕数学公式编辑器。 四、Mathematica 系统 Mathematica是由美国物理学家Stephen Wolfram领导的Wolfram Research开发的数学系统软件。它拥有强大的数值计算和符号计算能力,在这一方面与Maple类似,但它的符

MATLAB)课后实验答案[1]

实验一 MATLAB 运算基础 1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。 (1) 0 12 2sin851z e =+ (2) 221ln(1)2 z x x =++,其中2 120.45 5i x +??=? ?-?? (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+= ++=-- (4) 2242011 122123t t z t t t t t ?≤=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1)

4. 完成下列操作: (1) 求[100,999]之间能被21整除的数的个数。 (2) 建立一个字符串向量,删除其中的大写字母。 解:(1) 结果: m=100:999; n=find(mod(m,21)==0); length(n) ans = 43 (2). 建立一个字符串向量例如: ch='ABC123d4e56Fg9';则要求结果是: ch='ABC123d4e56Fg9'; k=find(ch>='A'&ch<='Z'); ch(k)=[] ch =

科学计算与MATLAB语言(第四课)

第四讲绘图功能

作为一个功能强大的工具软件,Matlab 具有很强的图形处理功能,提供了大量的二维、三维图形函数。由于系统采用面向对象的技术和丰富的矩阵运算,所以在图形处理方面即常方便又高效。

4.1 二维图形 一、plot函数 函数格式:plot(x,y)其中x和y为坐标向量函数功能:以向量x、y为轴,绘制曲线。【例1】在区间0≤X≤2 内,绘制正弦曲线Y=SIN(X),其程序为: x=0:pi/100:2*pi; y=sin(x); plot(x,y)

一、plot函数 【例2】同时绘制正、余弦两条曲线Y1=SIN(X)和Y2=COS(X),其程序为: x=0:pi/100:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2) plot函数还可以为plot(x,y1,x,y2,x,y3,…)形式,其功能是以公共向量x为X轴,分别以y1,y2,y3,…为Y轴,在同一幅图内绘制出多条曲线。

一、plot函数 (一)线型与颜色 格式:plot(x,y1,’cs’,...) 其中c表示颜色,s表示线型。 【例3】用不同线型和颜色重新绘制例4.2图形,其程序为:x=0:pi/100:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,'go',x,y2,'b-.') 其中参数'go'和'b-.'表示图形的颜色和线型。g表示绿色,o表示图形线型为圆圈;b表示蓝色,-.表示图形线型为点划线。

一、plot函数 (二)图形标记 在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的含义、坐标说明等,将这些操作称为添加图形标记。 title(‘加图形标题'); xlabel('加X轴标记'); ylabel('加Y轴标记'); text(X,Y,'添加文本');

MATLAB期末考试试卷及其参考答案

MATLAB期末考试试卷及其参考答案 一、填空题(每空1分,20分) 1、MATLAB常用操作界面包括、工作空间窗口、 、、内存数组编辑器、M文件编辑/调试器、帮助导航/浏览器、图形窗口等。 2、MATLAB中Inf或inf表示、NaN或nan表示、 nargout表示。 3、MATLAB中逗号主要用作; 用作输入量与输入量之间的分隔符;。 4、工作空间浏览器主要用于内存变量的、和。 5、MATLAB实现将全下标转换为单下标的指令为、据单下标换 算出全下标的指令为。 6、二维数组的标识有、、“逻辑1”标识。 7、在一个元胞数组A中寻访第2行第3列元胞元素用;寻访数组第2行第3列元胞中所存的内容用。 8、4、MATLAB中clf用于、clc用 于、 clear用于。 二、简答题(每题5分,共20分) 1、简述MA TLAB历史指令窗的主要作用。 2、简述空数组的功用。 3、简述MATLAB函数的基本结构。 4、简述绘制二维图形的一般步骤。 三、阅读程序并回答问题(每题4分,共28分) 1、写出下列指令运行结果。 A=zeros(2,4); A(:)=1:8;

s=[2 3 5]; A(s) Sa=[10 20 30]' A(s)=Sa 2、写出下列指令运行结果。 A=reshape(1:16,2,8) reshape(A,4,4) s=[1 3 6 8 9 11 14 16]; A(s)=0 3、写出下列指令运行结果。 A=[1,2;3,4]; B=[-1,-2;2;1]; S=3; A.*B A*B S.*A S*B 4、下面的函数主要完成什么功能? function f=factor(n) if n<=1 f=1; else f=factor(n-1)*n; end 5、写出下列指令运行结果。 ch=‘ABc123d4e56Fg9’; subch=ch(1:5) revch=ch(end:-1:1)

matlab所有实验及答案

实验二 习题 1、 矩阵Y= ???? ? ???? ???3472123100451150425 ,给出元素1的全下标和单下标,并用函数练习全下标和单下标的转换,求出元素100的存储位置。取出子矩阵?? ? ? ??21301,并求该矩阵的维数。 解:命令为: Y=[5,2,4;0,15,1;45,100,23;21,47,3] Y(2,3) Y(10) sub2ind([4 3],2,3) [i,j]=ind2sub([4 3],10) find(Y==100) sub2ind([4 3],3,2) B=Y(2:2:4,3:-2:1) 或 B=Y([2 4],[3 1]) [m n]=size(Y) 2、 建立一个数值范围为0—100内4*5的整数随机矩阵。 求出大于50的元素的位置。 解:命令为: G=int8(100*rand(4,5)) find(G>50) 3、 已知矩阵A=[1 0 -1 ;2 4 1; -2 0 5],B=[0 -1 0;2 1 3;1 1 2] 求2A+B 、A 2-3B 、A*B 、B*A 、A .*B ,A/B 、A\B 解:命令为: A=[1 0 -1 ;2 4 1; -2 0 5] B=[0 -1 0;2 1 3;1 1 2] E=2*A+B F=A^2-3*B G=A*B H=B*A I=A.*B J=A/B K=A\B 4、 利用函数产生3*4阶单位矩阵和全部元素都为8的 4*4阶矩阵,并计算两者的乘积。 解:命令为: A=eye(3,4) B=8*ones(4) C=A*B 5、 创建矩阵a=????? ???????------7023021.5003.120498601 ,取出其前两列构成的矩阵b ,取出前两行构成矩阵c ,转置矩阵b 构成矩阵d ,计算a*b 、c

流体力学简单计算MATLAB程式

用matlab进行编程计算 第一问: z=30;p1=50*9.8*10^4;p2=2*9.8*10^4;jdc=0.00015;gama=9800;d=0.257;L=50000 ;mu=6*10^(-6); hf=z+(p1-p2)/(0.86*gama) xdc=2*jdc/d; beta=4.15;m=1; Q=(hf*d^(5-m)/(beta*mu^m*L))^(1/(2-m)); v=4*Q/(pi*d^2); Re=v*d/mu; Re1=59.7/xdc^(8*xdc/7); Re2=(665-765*log(xdc))/xdc; i=hf/L; if Re<3000 Q=Q; elseif 3000

《Matlab与科学计算》作业 2010010099

《Matlab与科学计算》作业 第一章MATLAB环境 1、MATLAB通用操作界面窗口包括哪些?命令窗口、历史命令窗口、当前目录窗口、工作空间窗口各有哪些功能? 答:MATLAB通用操作界面窗口包括:命令窗口、历史命令窗口、当前目录浏览器窗口、工作空间窗口、变量编辑器窗口、M文件编辑/调试器窗口、程序性能剖析窗口、MATLAB帮助。 命令窗口是MATLAB命令操作的最主要窗口,可以把命令窗口当做高级的“草稿纸”。在命令窗口中可以输入各种MATLAB的命令、函数和表达式,并显示除图形外的所有运算结果。 历史命令窗口用来记录并显示已经运行过的命令、函数和表达式,并允许用户对它们进行选择、复制和重运行,用户可以方便地输入和修改命令,选择多行命令以产生M文件。 当前目录窗口用来设置当前目录,可以随时显示当前目录下的M、MKL等文件的信息,扬文件类型、文件名、最后个修改时间和文件的说明信息等,并可以复制、编辑和运行M文件及装载MAT数据文件。 工作空间窗口用来显示所有MATLAB工作空间中的变量名、数据结构、类型、大小和字节数。 2、熟悉课本中表格1.4、1.5、1.6、1.7、1.8的内容。 3、如何生成数据文件?如何把数据文件中的相关内容输入到工作空间中,用实例进行操作。 生成数据文件:

把数据文件中的相关内容输入到工作空间中: 结果: 4、在工作空间中可以通过哪些命令管理变量,写出每种语法的具体操作过程。答:(1)把工作空间中的数据存放到MAT数据文件。 语法:save filename 变量1 变量2 ……参数。 (2)从数据文件中取出变量存放到工作空间。 语法:load filename 变量1 变量2 ……。

MATLAB试卷

MATLAB试卷 一、选择题(每空2分,总共20分) 1.下列哪个变量的定义是不合法的() (A) abcd-3 (B) xyz_3 (C ) abcdef (D) x3yz 2.下列哪条指令是求矩阵的行列式的值() (A)inv (B) diag (C ) det (D) eig 3.在循环结构中跳出循环,执行循环后面代码的命令为() (A) return (B) break (C) continue (D) keyboard 4.已知a=2:2:8, b=2:5,下面的运算表达式中,出错的 为() (A) a'*b (B) a .*b (C) a*b (D) a-b 5.用round函数四舍五入对数组[2.48 6.39 3.93 8.52]取整,结果为() (A) [2 6 3 8] (B) [2 6 4

8] (C) [2 6 4 9] (D) [3 7 4 9] 6. 下面的程序执行后array的值为( ) for k=1:10 if k>6 break; else array(k) = k; end end (A) array = [1, 2, 3, 4, 5, 6] (B) array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] (C) array =6 (D) array =10. 7.下列关于脚本文件和函数文件的描述中不正确的是( ) A. 去掉函数文件第一行的定义行可转变成脚本文件; B. 函数文件可以在命令窗口直接运行; C. 脚本文件可以调用函数文件; D. 函数文件中的第一行必须以function开始;

8.对应MATLAB提供的绘制平面曲线、离散序列、三维曲线、三维网格曲线、等高线图的函数为( ) A. plot, stem, mesh, plot3, surf B. plot, stem, plot3, mesh, contour C. plot, hist, mesh, plot3, contour D. plot, hist, plot3, meshc, contour 9.设X=[0:0.5*pi:pi], Y=cos(X)且Z=sin(X),那么Y.*Z, Y*Z’和cat(1,Y,Z)的结果分别为( ) A. [0 0 0] 0 [1 0 -1; 0 1 0] B. [0 0 0] 0 [1 0 -1 0 1 0] C. [0 0 0] [0 1 0; 0 0 0; 0 -1 0] [1 0 -1; 0 1 0] D. [0 1 0; 0 0 0; 0 -1 0] [0 0 0] [1 0 -1 0 1 0] 10.使用下列哪一条指令可以将图形窗体分割成二行三列,并且将第二行第二列的绘图区域设置为当前的绘图区域() A.subplot(3,2,2) B.subplot(2,3,2) C.subplot(3 ,2,5) D.subplot(2,3,5)

matlab实验四及其答案

实验四GUI 设计专业 学号姓名成绩电气工程及其自 动化201409140305 杨诚1.创建GUI 绘制方程c bx ax y ++=2图形,需要显示绘图结果的坐标系窗口,还能够输入 a , b , c 的值和x 取值范围(最大值和最小值)。 回调函数的编写: a=str2num(get(handles.edit1,'String'));b=str2num(get(handles.edit2,'String'));c=str2num(get(handles.edit3,'String'));xmin=str2num(get(handles.edit4,'String'));xmax=str2num(get(handles.edit5,'String'));x=xmin:0.1:xmax;y=a*x.^2+b*x+c;plot(x,y); 设计的运行界面截图:

2.设计一个GUI,完成画出y=sin(x)、y=cos(x)和y=x 3.的波形图。回调函数的编写: x=-5:0.1:5 plot(x,sin(x)) x=-5:0.1:5 plot(x,cos(x))

x=-5:0.1:5 y=x.^3 plot(x,y)

设计的运行界面截图: 3.创建一个GUI,含有下拉菜单,下拉菜单中有背景颜色选择。回调函数的编写: yanse=get(handles.popupmenu1,'value'); switch yanse case1 set(gcf,'color','r'); case2 set(gcf,'color','y'); case3 set(gcf,'color','g'); end 设计的运行界面截图:

《MATLAB与科学计算》期末论文

盐城师范学院《MATLAB与科学计算》期末论文 2016-2017学年度第一学期 用MATLAB解决解析几何的图形问题 学生姓名吴梦成 学院数学与统计学院 专业信息与计算科学 班级数15(5)信计 学号 15213542

用MATLAB 解决解析几何的图形问题 摘 要 将 MATLAB 的图形和动画功能都用于解析几何教学,可使教学形象生动。以图形问题为例,详细给出了实例的程序编写和动画实现过程 。在解析几何教学中有一定的应用价值。 【关键词】: MATLAB ; 解析几何 ;图形 ; 动 画;编程 1 引 言 在解析几何的教学中,使用传统的教学方法。许多曲线及曲面的形成过程与变换过程只通过传统的教师讲授静态图示就很难形象生动地表示出来 。在解析几何教学中使用MATLAB 软件辅助教学,不仅可以很容易绘制出复杂的立体图形。把曲线、曲面的形成和变化过程准确地模拟出来 ,而且还能够对它们进行翻转 、旋转 ,甚 至还能够轻而易举地实现图形的动画效果!这对提高教学效率和培养学生的空间想象能力可起到事半功倍的效果。下面结合实例从几个方面说明MATLAB 在解析几何画图方面的应用。 2 利用 MATLAB 绘制三维曲线 在空间解析几何中,各种曲线和曲面方程的建立都离不开图形 ,而空间曲线和曲面图形既难画又费时。借助MATLAB 的绘图功能 ,可以快捷 、 准确地绘出图形,使教学变得形象 、生动 。有利于学生观察三维空间图形的形状 , 掌握图形的性质 。 一 般地 ,MATLAB 可用plot3,ezplot3,comet3等函数来各种三维曲线 。 例如画螺旋曲线的图形,其参数方程设为 :t at cos x =,t b sin t y -=,ct =z 。使用 plot3语句画螺旋曲线图形的方法如下( 设a =2 ,b=4,c=3): );*3),sin(*.*4),cos(*.*2(3;*10:50/:0t t t t t plot pi pi t -= MATLAB 用两条简单的语句就可以画出螺旋 曲线(图1),但上述方法是静态的 ,为了体

MATLAB期末上机试题带答案

MATLAB 期末上机考试试题带答案版 姓名: 学号: 成绩: 1.请实现下图: 50 100 150 200 250 -1 -0.8-0.6-0.4-0.200.20.40.60.81x y y=sin(x) x=linspace(0,8*pi,250); y=sin(x); plot(x,y) area(y,-1) xlabel('x') ylabel('y') title('y=sin(x)') 2.请实现下图: x=linspace(0,2*pi,100); y1=sin(x); subplot(2,2,1) plot(x,y1,'k--') grid on xlabel('x') ylabel('y') title('sin(x)') legend('y=sin(x)') y2=cos(x);

subplot(2,2,2) plot(x,y2,'r--') grid on xlabel('x') ylabel('y') title('cos(x)') legend('y=cos(x)') y3=tan(x); subplot(2,2,3) plot(x,y3,'k-') grid on xlabel('x') ylabel('y') title('tan(x)') legend('y=tan(x)') y4=cot(x); subplot(2,2,4) plot(x,y4) grid on xlabel('x') ylabel('y') title('cot(x)') legend('y=cot(x)') 3.解方程组: a=[3 2 1;1 -1 3;2 4 -4]; b=[7;6;-2] ; x=a\b 4.请实现下图: 2 4 6 8 10 12 14 -1-0.8-0.6-0.4-0.200.20.40.60.81x y '自己的姓名' sin(x)sin(2*x) x=linspace(0,4*pi,1000); y1=sin(x);

Matlab与科学计算样题(加主观题答案)

Matlab 与科学计算考试样题(客观题) 1 下面的MATLAB 语句中正确的有: a) 2a =pi 。 b) record_1=3+4i c) a=2.0, d) c=1+6j 2. 已知水的黏度随温度的变化公式如下,其中a=0.03368,b=0.000221,计算温度t 为20,30,40度时的粘度分别是: 2 1at bt μμ=++0μ为0℃水的黏度,值为31.78510-?;a 、b 为常数,分别为0.03368、0.000221。 3. 请补充语句以画出如图所示的图形: [x,y]=meshgrid(-2:0.1:2, -2:0.1:2)。 Z=x.*exp(-x.^2-y.^2)。 。 a) Plot3(x,y,Z) b) plot3(x,y,Z) c) mesh(x,y,Z) d) plot3(x,y,z) 2 a) 0.4900 1.2501 0.8560 b) 0.8560 1.2501 0.4900 c) -0.6341 3.8189 -3.7749 d) 3.8189 -3.7749 2.8533 解释说明:

>> x=0.5:0.5:3.0。 >> y=[1.75,2.45,3.81,4.80,8.00,8.60]。 >> a=polyfit(x,y,2) a = 0.4900 1.2501 0.8560 >> x1=[0.5:0.25:3.0]。 >> y1=a(1)*x1.^2+a(2)*x1+a(3) >> plot(x,y,'*') >> hold on >> plot(x1,y1,'--r') 5. 求方程在 x=0.5附近的根. 21 x x += a) 0.6180 b) -1.1719e-25 c) -1 d) -1.6180 6. 用Newton-Cotes方法计算如下积分 1 5 x? (a)133.6625 (b)23.8600 (c) 87.9027 (d) -1.6180 7. y=ln(1+x),求x=1时y" a) -0.25 b) 0.5 c) -0.6137 d) -1.6137 8.某公司用3台轧机来生产规格相同的铝合金薄板。取样测量薄板的 厚度,精确至‰厘M。得结果如下: 轧机1:0.236 0.238 0.248 0.245 0.243 轧机2:0.257 0.253 0.255 0.254 0.261 轧机3:0.258 0.264 0.259 0.267 0.262 计算方差分析结果,并判定各台轧机所生产的薄板的厚度有无显著的差异? a) p=1.3431e-005,没有显著差异。

MATLAB期末上机试题带答案

MATLAB期末上机试题带答案

MATLAB 期末上机考试试题带答案版 姓名: 学号: 成绩: 1.请实现下图: x y y=sin(x) x=linspace(0,8*pi,250); y=sin(x); plot(x,y) area(y,-1) xlabel('x') ylabel('y') title('y=sin(x)') 2.请实现下图:

x=linspace(0,2*pi,100); y1=sin(x); subplot(2,2,1) plot(x,y1,'k--') grid on xlabel('x') ylabel('y') title('sin(x)') legend('y=sin(x)') y2=cos(x); subplot(2,2,2) plot(x,y2,'r--') grid on xlabel('x') ylabel('y') title('cos(x)') legend('y=cos(x)') y3=tan(x); subplot(2,2,3) plot(x,y3,'k-') grid on xlabel('x')

ylabel('y') title('tan(x)') legend('y=tan(x)') y4=cot(x); subplot(2,2,4) plot(x,y4) grid on xlabel('x') ylabel('y') title('cot(x)') legend('y=cot(x)') 3.解方程组: a=[3 2 1;1 -1 3;2 4 -4];b=[7;6;-2] ; x=a\b 4.请实现下图:

MATLAB实验题目及答案

实验二一维二维数组的创建和寻访 一、实验目的 1、掌握一维数组、二维数组创建和寻访的几种方法。 2、区别数组运算和矩阵运算的差别。 3、熟悉执行数组运算的常用数组操作函数。 4、掌握数组运算中的关系和逻辑操作及常用的关系、逻辑函数。 5、掌握“非数”、“空”数组在MA TLAB中的应用。 二、实验主要仪器与设备 装配有MA TLAB7.6软件的计算机 三、预习要求 做实验前必须认真复习第三章MATLAB的数值数组及向量化运算功能。 四、实验内容及实验步骤 1、一维数组的创建方法有哪几种?举例说明。 答:一维数组的创建方法有: ①递增/递减型一维数组的创建:冒号生成法:x=a:inc:b 线性(或对数)定点法:x=linspace(a,b,n),x=logspace(a,b,n) ②逐个元素输入法:如x=[0.1,sin(pi/5),-exp(-3),-2*pi] ③运用MA TLAB函数生成法:例ones,rand等。 2、输入以下指令,并写出运行结果。本例演示:数组元素及子数组的各种标识和寻访格式;冒号的使用;end的作用。 A=zeros(2,6) %创建(2×6)的全零数组 A(:)=1:12 %赋值号左边:单下标寻访(2×6) 数组A的全部12个元素 %赋值号右边:拥有12个元素的一维数组 A(2,4) %双下标:A数组的第2行第4列元素 A(8) %单下标:数组A的第8个元素 A(: , [1,3]) %双下标:显示A的“第1列和第3列上全部行的元素” A([1, 2, 5, 6]') %单下标:把A数组第1,2,5,6个元素排成列向量 A(: , 4:end) %双下标:显示A的“从第4起到最后一列上全部行的元素” %在此end用于“列标识”,它表示“最后一列” A(2,1:2:5)=[-1, -3, -5] %把右边的3个数分别赋向A数组第2行的第1,3,5个元素位置 B=A([1, 2, 2, 2], [1, 3, 5]) %取A数组的1,3,5列的第1行元素作为B的第1行 %取A数组的1,3,5列的第2行分别作为B的第2,3,4行 L=A<3 %产生与A维数相同的“0,1”逻辑数组 A(L)=NaN %把逻辑1标识的位置上的元素赋为“非数” 运行结果: A = 0 0 0 0 0 0 0 0 0 0 0 0

Matlab实验指导书(含答案)汇总

实验一:Matlab操作环境熟悉 一、实验目的 1.初步了解Matlab操作环境。 2.学习使用图形函数计算器命令funtool及其环境。 二、实验内容 熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算: 1.单函数运算操作。 求下列函数的符号导数 (1) y=sin(x); (2) y=(1+x)^3*(2-x); 求下列函数的符号积分 (1) y=cos(x); (2) y=1/(1+x^2); (3) y=1/sqrt(1-x^2); (4) y=(x-1)/(x+1)/(x+2); 求反函数 (1) y=(x-1)/(2*x+3); (2) y=exp(x); (3) y=log(x+sqrt(1+x^2)); 代数式的化简 (1) (x+1)*(x-1)*(x-2)/(x-3)/(x-4); (2) sin(x)^2+cos(x)^2; (3) x+sin(x)+2*x-3*cos(x)+4*x*sin(x); 2.函数与参数的运算操作。 从y=x^2通过参数的选择去观察下列函数的图形变化 (1) y1=(x+1)^2 (2) y2=(x+2)^2 (3) y3=2*x^2 (4) y4=x^2+2 (5) y5=x^4 (6) y6=x^2/2 3.两个函数之间的操作 求和 (1) sin(x)+cos(x) (2) 1+x+x^2+x^3+x^4+x^5 乘积 (1) exp(-x)*sin(x)

相关主题
文本预览
相关文档 最新文档