文档库 最新最全的文档下载
当前位置:文档库 › C# matlab混合编程 MWArray使用笔记

C# matlab混合编程 MWArray使用笔记

C# matlab混合编程 MWArray使用笔记
C# matlab混合编程 MWArray使用笔记

C# matlab混合编程

徐凯Email:xukai19871105@https://www.wendangku.net/doc/1f12561162.html,

这几天突然想搞一搞以前没有搞定的MATLABC#混合编程,今天把原来编写的代码拿出来看看,然后结合网上一些正确的和一些错误的代码看看,最后详细参考了MATLAB的帮助文档,总算搞定了C#和MATLAB的混合编程。当然也不是完全搞定,仅仅完成了很小的一部分。总结一下,也就是熟悉MW Array 和.NET之间的数据类型转换。下面就和大家分享一下吧。

查看MATLAB提供一个最简单的关于绘图函数的例子,我先实践了一下MATLAB中的代码,发现发现有问题,有点怀疑matlab帮助文档的代码有问题,虽然这种情况真的非常的少见,但是后来证明我的怀疑是正确的。MATLAB原来C#的代码大概是这样的。

//二维数组,Y=X^2

double[,] plotValue = new double[10, 2];

for (int i = 0; i < 10; i++)

{

plotValue[i, 0] = i;

plotValue[i, 1] = i * i;

}

//实例化Calculater对象

Calculater myCalculater = new Calculater();

//调用drawgraph方法

myCalculater.drawgraph((MWNumericArray)plotValue);

C#的代码中说起来也非常简单,声明一个二维数组,使用for循环给每一个元素赋值,这个数组的第0列是X坐标的值,数组的第1列是Y坐标的值,两个坐标的关系是Y=X^2。而MATLAB中m文件的函数如下:

function drawgraph(coords)

plot(coords(1,:), coords(2,:));

MATLAB的代码的意思也很简单,以coords矩阵的第1行的所有列为X坐标,第2行的所有列为Y轴。在这里一看发现了一个问题,我自己心里想可能是matlab提供的范例似乎有点问题,C#创建的数组是10行2列的,而drawgraph的函数似乎想接收一个2行10列的数据。这样导致的两个结果,第一,我个人总是得不到想要的结果,总给我画一个空图,这也是我上次尝试的时候放弃的原因。第二,由于这个debug存在,所以我就仔细研究了MW Array这个类型和与C#之间的类型转换,这也是就是自学的快乐所在,解决一个问题还可以学到很多其他的东西,所以我每次都“乐此不疲”。

话说回来,如果把这个行列的关系搞清楚的话,就可以得到想要的结果。例如我把matlab的m文件重写成这样的形式

function drawgraph(coords)

plot(coords(:,1), coords(:,2),'*');

那么这条抛物线就很自然的得到了,结果如图所示啊。为了表达的清楚一点,我还把标记换成了*。

问题了解决了,再来回顾一下前面的代码。在调用drawgraph方法时。plotValue这个double类型的数组通过强制类型转换转化为了MWNumericArray。查看drawgraph方法的信息,函数的输入输出参数的类型,如下:

public void drawgraph(https://www.wendangku.net/doc/1f12561162.html,.Arrays.MWArray coords)

输入的参数是一个MW Array类型的参数,而MWNumericArray是MWArray的派生类。我现在也觉得怪怪的函数的申明中明明函数的输入参数是MW Array,而我把这个double数组强制转换成MW Array却是总是提示编译错误,无法进行强制类型转换。

虽然上面的代码可以运行了,但是我又想是否可以通过构造方法构造出一个MWNumericArray类型的矩阵呢,答案当然是可以的。在VS的对象浏览器中查看了MWNumericArray各种构造方法,其中有一个构造方法是这样的:

public MWNumericArray(https://www.wendangku.net/doc/1f12561162.html,.Arrays.MWArrayComplexity complexity, params int[] dimensions)

输入的第一个参数是枚举型参数,有两个值分别是Real,另一个是Complex;然后输入矩阵的维数,由于有params关键字,所以可以创建指定大小的1维2维和3维矩阵。在这里通过以下代码就可以构造一个MWNumericArray矩阵。

//使用构造方法,构造一个10行2列的实数矩阵

MWNumericArray plotValue = new MWNumericArray(MWArrayComplexity.Real, 10, 2); 接下来就是一段我“想当然”的代码:

for (int i = 0; i < 10;i++ )

{

plotValue[i, 0] = i;

plotValue[i, 1] = i*i;

}

但是编译的时候,总是提示写入或读取了受保护的内存。经过几次反复我才惊醒过来,matlab中矩阵的下标是从1开始的,而C#是从0开始的。所以完整的代码是这样的。(我还在国内的ilovematlab论坛,担任simulink某个模块的版主,这个错误犯得真的不应该)。

//实例化Calculater对象

Calculater myCalculater = new Calculater();

//使用构造方法,构造一个10行2列的实数矩阵

MWNumericArray plotValue = new MWNumericArray(MWArrayComplexity.Real, 10, 2); //注意该实数矩阵的下表从1开始

for (int i = 1; i <= 10;i++ )

{

plotValue[i, 1] = (i - 1);

plotValue[i, 2] = (i - 1) * (i - 1);

}

//调用drawgraph方法

myCalculater.drawgraph(plotValue);

经过这么几次折腾过后,成功构造了一个MWNumericArray类型的矩阵,如果现在强制转换成MWArray是没有问题了。这张想要的抛物线图形也就出来了。

当前现在我还只是解决了数组(矩阵)的输入问题,当然还有数组(矩阵)的输出问题。这个留着下次再说吧。

MATLAB实验报告

MATLAB程序设计语言 实 验 报 告 专业及班级:电子信息工程 姓名:王伟 学号:1107050322 日期 2013年6月20日

实验一 MATLAB 的基本使用 【一】 实验目的 1.了解MATALB 程序设计语言的基本特点,熟悉MATLAB 软件的运行环境; 2.掌握变量、函数等有关概念,掌握M 文件的创建、保存、打开的方法,初步具备将一般数学问题转化为对应计算机模型处理的能力; 3.掌握二维图形绘制的方法,并能用这些方法实现计算结果的可视化。 【二】 MATLAB 的基础知识 通过本课程的学习,应基本掌握以下的基础知识: 一. MATLAB 简介 二. MATLAB 的启动和退出 三. MATLAB 使用界面简介 四. 帮助信息的获取 五. MATLAB 的数值计算功能 六. 程序流程控制 七. M 文件 八. 函数文件 九. MATLAB 的可视化 【三】上机练习 1. 仔细预习第二部分内容,关于MATLAB 的基础知识。 2. 熟悉MATLAB 环境,将第二部分所有的例子在计算机上练习一遍 3. 已知矩阵???? ??????=??????????=123456789,987654321B A 。求A*B ,A .* B ,比较二者结果是否相同。并利用MATLAB 的内部函数求矩阵A 的大小、元素和、长度以 及最大值。 程序代码: >> A=[1 2 3;4 5 6;7 8 9]; >> B=[9 8 7;6 5 4;3 2 1]; >> A*B ans =

30 24 18 84 69 54 138 114 90 >> A.*B ans = 9 16 21 24 25 24 21 16 9 两者结果不同 >> [m,n]=size(A) m = 3 n = 3 >> b=sum(A) b = 12 15 18 >> a=length(A) a = 3 >>max(A) ans =

MATLAB实验报告实验二

实验二 MATLAB矩阵及其运算 学号:3121003104 姓名:刘艳琳专业:电子信息工程1班日期:2014.9.20 一实验目的 1、掌握Matlab数据对象的特点以及数据的运算规则。 2、掌握Matlab中建立矩阵的方法以及矩阵处理的方法。 3、掌握Matlab分析的方法。 二实验环境 PC_Windows 7旗舰版、MATLAB 7.10 三实验内容 4、1. (1)新建一个.m文件,验证书本第15页例2-1; (2)用命令方式查看和保存代码中的所有变量;

(3)用命令方式删除所有变量; (4)用命令方式载入变量z。 2. 将x=[4/3 1.2345e-6]在以下格式符下输出:短格式、短格式e方式、长格式、长格式e方式、银行格式、十六进制格式、+格式。 短格式 短格式e 长格式

长格式e方式 银行格式 十六进制格式 3.计算下列表达式的值 (1)w=sqrt(2)*(1+0.34245*10^(-6)) (2)x=(2*pi*a+(b+c)/(pi+a*b*c)-exp(2))/(tan(b+c)+a) a=3.5;b=5;c=-9.8; (3)y=2*pi*a^2*((1-pi/4)*b-(0.8333-pi/4)*a) a=3.32;b=-7.9; (4)z=0.5*exp(2*t)*log(t+sqrt(1+t*t)) t=[2,1-3i;5,-0.65];

4. 已知A=[1 2 3 4 5 ;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20],对其进行如下操作:(1)输出A在[ 7, 10]范围内的全部元素; (2)取出A的第2,4行和第1,3,5列; (3)对矩阵A变换成向量B,B=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]; (4)删除A的第2,3,4行元素; (1) (2)

MATLAB全实验报告

《数学实验》报告 实验名称 Matlab 基础知识 学院 专业班级 姓名 学号 2014年 6月

一、【实验目的】 1.认识熟悉Matlab这一软件,并在此基础上学会基本操作。 2.掌握Matlab基本操作和常用命令。 3.了解Matlab常用函数,运算符和表达式。 4.掌握Matlab工作方式和M文件的相关知识。 5.学会Matlab中矩阵和数组的运算。 二、【实验任务】 P16 第4题 编写函数文件,计算 1! n k k = ∑,并求出当k=20时表达式的值。P27第2题 矩阵A= 123 456 789 ?? ?? ?? ?? ?? ,B= 468 556 322 ?? ?? ?? ?? ?? ,计算A*B,A.*B,并比较两者的区别。 P27第3题 已知矩阵A= 52 91 ?? ?? ?? ,B= 12 92 ?? ?? ?? ,做简单的关系运算A>B,A==B,AB)。 P34 第1题 用 111 1 4357 π =-+-+……公式求π的近似值,直到某一项的绝对值小于-6 10为止。 三、【实验程序】 P16 第4题 function sum=jiecheng(n) sum=0; y=1; for k=1:n for i=1:k y=y*i; end sum=sum+y; end sum P27第2题 >>A=[1 2 3;4 5 6;7 8 9] >>B=[4 6 8;5 5 6;3 2 2] >>A*B

P27第3题 >> A=[5 2;9 1];B=[1 2;9 2]; >>A>B >>A==B >>A> (A==B)&(A> (A==B)&(A>B) P34 第1题 t=1; pi=0; n=1; s=1; while abs(t)>=1e-6 pi=pi+t; n=n+2; s=-s; t=s/n; end pi=4*pi; 四、【实验结果】 P16 第4题 P27第2题

matlab学习心得体会(精选3篇)

matlab学习心得体会(精选3篇) matlab学习心得体会一:matlab学习心得matlab中有丰富的图形处理能力,提供了绘制各种图形、图像数据的函数。他提供了一组绘制二维和三维曲线的函数,他们还可以对图形进行旋转、缩放等操作。matlab内部还包含丰富的数学函数和数据类型,使用方便且功能非常强大。 本学期通过对matlab的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了matlab的实用方法。通过理论课的讲解与实验课的操作,使我在短时间内学会使用matlab,同时,通过上机实验,对理论知识的复习巩固实践,可以自己根据例题编写设计简单的程序来实现不同的功能,绘制出比较满意的二维三维图形,在实践中找到乐趣。 matlab是一个实用性很强,操作相对容易,比较完善的工具软件,使用起来比较方便,通过操作可以很快看到结果,能够清晰的感觉到成功与失败,虽然课程中也会出现一些小问题,但是很喜欢这门课程。 matlab学习心得体会二:matlab学习心得(463字) 学习matlab是听说它是一个功能强大的数学软件,但是正被微积分的计算缠身,听说有一个高级的计算器当然高兴,以后可以偷懒了,当然现在不能偷懒。听说关于自动化的计算特别复杂,如果有一种软件能帮忙解题,那是一种极大的解脱,有益于缩短研究时间。目前我只知道有三种数学软件,都是国外的,没有国内的,差距挺大的。matlab学起来挺顺手的,比c语言简单。但是深入学习的时候却困难重重,因为很多知识都没有学习,就算知道那些函数,也没有什么用处。老师布置的作业难度大,写一篇实验,大一什么都不会,写一篇这种论文谈何容易。最多也就会一些数值计算、符号计算、简单绘图,根本不会什么实验。 学习matlab体会最多的是这个软件的功能强大,好多数学题都被轻易的解出。但是有一点遗憾,不知是我不会用,还是它没个功能,已知空间的电荷分布,求空间的电场分布。其中电场分布是无法用函数表达式表示。我知道计算机肯定可以实现,但是这个软件能不能实现就不知道了,我看过许多资料,但是在这方面没有提到相关信息。 总之,这个软件功能强大,不知什么时候国内才有类似的软件。 matlab学习心得体会三:学习matlab的心得(817字) 这是我在学习的过程中的一些技巧,或许对你有帮助,可能字数不你能满足你的要求,但是绝对是精华。

MATLAB实训小结

实训小结 为期一周的MATLAB实训在学习与忙碌中度过了,时间虽短,但我们却真真切切的学到了知识,在现实工作中可以运用的知识。 在第一节课,我们便了解到MATLAB是世界上最流行的、应用最广泛的工程计算和仿真软件,它将计算、可视化和编程等功能同时集于一个易于开发的环境。MATLAB主要应用于数学计算、系统建模与仿真、数学分析与可视化、科学与工程绘图和用户界面设计等。对MATLAB的系统结构和特点等,老师也向我们做出了大致的讲解,同时,我们知道了MATLAB程序的一些最基本的应用和运算,并能够进行一些简单的编程。就这样,实训的第一天大家都在期待和兴奋中度过。 接下来的时间,主要是以大家自学和练习为主,老师进行辅导和考察。在学习过程中,不懂的可以相互之间小声的讨论,也可向老师请教,但必须确保自己真正学到了知识,认真的看书并进行编程练习。一天的学习接近尾声时,就是老师考察大家一天的收获的时候了,老师总会出一些小题目让大家编出它的程序,虽然有的题目对我们来说还是有些难度的,但是在老师的指点下我们还是编出程序的,当我们看到自己编的程序运行正确时,总是会万分的兴奋,充满成就感。 就这样,仅仅一个星期的实训就结束了,虽然不能十分熟悉和运用MATLAB的所有程序,但是我们却打下了一定的基础,

在以后,当我们真正开始深入学习这门学问时,我们对它将不会再那么陌生,学起来也将轻松许多。这次实训为我们提供了一个很好的学习机会,唯一不足的就是时间有点短,我们不能在这段时间里学到更多的知识,因此,在这一周打下的基础上,我们需要用自己的努力去自学,以获取更多的知识。 知识是无穷无尽的,知识的获取需要一颗上进的心,老师将我们领进了门,下面的路就应该我们自己去走,即是充满荆棘,也要努力奋斗往前冲。

MATLAB课程设计实验体会

课程设计实验体会 学生姓名:李祥胜 学生学号:20120704 专业班级:光信息科学与技术 指导老师:miss Chen 学院:信息工程学院 题目: MATLAB学期实验总结

MATLAB概念及介绍 MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB集成环境主要包括五个部分:MATLAB语言、MATLAB工作环境、句柄图形、MATLAB数学函数库和数学建模、小波分析、MATLAB API(App lication Program Interface)。MATLAB语言是以数组为基本数据单位,包括控制流程语句、函数、数据结构、输人输出及面向对象等特点的高级语言。利用SIMULINK对系统进行仿真与分析,在进入虚拟实验环境后,不需要书写代码,只需使用鼠标拖动库中的功能模块并将它们连接起来,再按照实验要求修改各元器件的参数。通过虚拟实验环境建立实验仿真电路模型,可使一些枯燥的电路变得有趣味,复杂的波形变得形象生动,使得各种复杂的能量转换过程比较直观地呈现。 1.1、MATLAB语言特点及优势 1.1.1、语言特点 MATLAB被称为第四代计算机语言,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB的最突出的特点就是简洁。MATLAB用更直观的、符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。MATLAB 给用户带来的是最直观、最简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点。 (1)语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用其丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。 (2)运算符丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短,具体运算符见附表。 (3)MATLAB既具有结构化的控制语句(如for循环、while循环、break语句和if语句),又有面向对象编程的特性。 (4)语法限制不严格,程序设计自由度大。例如,在MATLAB里,用户无需对矩阵预定义就可使用。 (5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。

【参考文档】matlab实验心得体会_学习matlab的心得体会-优秀word范文 (3页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除! == 本文为word格式,下载后可方便编辑和修改! == matlab实验心得体会_学习matlab的心得体会 导语:通过对MATLAB的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了MATLAB的实用方法。以下是小编带来的matlab实验心得体会,希望对您有所帮助。 matlab实验心得体会(一) 学习matlab是听说它是一个功能强大的数学软件,但是正被微积分的计算缠身,听说有一个高级的计算器当然高兴,以后可以偷懒了,当然现在不能偷懒。听说关于自动化的计算特别复杂,如果有一种软件能帮忙解题,那是一种 极大的解脱,有益于缩短研究时间。目前我只知道有三种数学软件,都是国外的,没有国内的,差距挺大的。matlab学起来挺顺手的,比C语言简单。但是 深入学习的时候却困难重重,因为很多知识都没有学习,就算知道那些函数, 也没有什么用处。老师布置的作业难度大,写一篇实验,大一什么都不会,写 一篇这种论文谈何容易。最多也就会一些数值计算、符号计算、简单绘图,根 本不会什么实验。 学习matlab体会最多的是这个软件的功能强大,好多数学题都被轻易的解出。但是有一点遗憾,不知是我不会用,还是它没个功能,已知空间的电荷分布,求空间的电场分布。其中电场分布是无法用函数表达式表示。我知道计算 机肯定可以实现,但是这个软件能不能实现就不知道了,我看过许多资料,但 是在这方面没有提到相关信息。 总之,这个软件功能强大,不知什么时候国内才有类似的软件。 matlab实验心得体会(二) 我从中国石油大学(北京)来到大庆油田勘探开发研究院实习,刚刚来到这 里时我内心充满了激动和喜悦,对这个有着辉煌成绩的科研单位充满了期待。 到了这里没多久我就参加培训中心组织的入院教育,对研究院的辉煌过去有了 更深刻的了解,那时我就下定决心在研究院好好实习,多学习一些现场经验,为以后的工作打下良好的基础。 一个月的入院培训结束后,经过自己申请和中心安排我被分到了地震资料 处理一室,实习期间地震一室的副主任陈志德是我的现场导师,陈主任有着丰

matlab实验心得体会.doc

matlab实验心得体会 篇一:matlab实验心得总结 通过《matlab仿真》实验使我学习掌握了许多知识。首先是对matlab 有了一个全新的认识,其次是对matlab的更多操作和命令的使用有了更高的掌握,最重要的事对matlab的处理能力有了一个更高的飞跃尤其是对相关函数的使用及相关问题的处理。 就对matlab相关的命令操作而言,通过这次实验的亲身操作和实践,学习掌握了许多原本不知道的或者不太熟悉的命令。比如说相关m文件的建立,画图用到的标注,配色,坐标控制,同一张图里画几幅不同的图像,相关参数的设置以及相关函数的调用格式等等。就拿建立一个数学方程而言,通过设置不同的参数达到所需要的要求和结果,而且还可以在不同的窗口建立不同的函数而达到相同的效果,比如说可以再命令窗口和m文件中通过不同的命令设置的到相同的所需的效果图。而自己对于矩阵及闭环传递函数的建立原本所掌握的知识几乎为零,而通过这次实验使我彻底的掌握了相关的命令操作和处理的方法,在这里我们不仅可以通过建立函数和参数来达到目标效果,而且还可以通过可视化的编程达到更快更方便,更简洁的效果。就拿可视化编程而言原本根本就只是听说而已罢了,从来就没有亲身去尝试过,然而现在自己却可以和容易的通过搭建不同功能木块来实现相关的函数及功能。这些在原本根本就不敢相信,然而通过《matlab仿真》的学习和实验亲身操作这些原本看似不可能的操作在此就变的轻而易举的事了。

再此我不得不题到的事指导老师教我们怎么去搭建构造相关闭环传递函数的实验,这个实验几乎在我们的这次实验中占据了非常大的比重,在后面的几个大一点的实验中几乎都是涉及这个方面的内容,我现在想说的事怎么去搭建相关的函数和功能模块对我们来说几乎已经不是什么难事了,就拿怎么去对模块功能的实现以及分析确实是个重点和难点。通过对同一个模块分析其对应的不同的参数分析图的建立去分析和解释其对应的相关功能和技术指标和性能分析是非常重要的,我们不可能只需要建立相关的模块和功能就说自己掌握了所有的相关知识和技术,真正的技术和知识是怎么去分析和解释相关的技术指标和功能参数才是重中之重。就此而言,我坦诚的说自己所掌握的还是十分的有限的,但是老师给我们介绍的相关方法和技巧还是十分有效果的,如果自己真的想在这方面有什么建树对自己以后的要求还是需要更改的要求的,万不可以就此止步不前,自命不凡,我们还需掌握和了解还有许多许多,我们真正所掌握的只是皮毛,要想取得更大的成绩就得不断的去努力学习和汲取相关的知识和技巧。万不可自以为傲,裹足不前,matlab真的是个非常强大和有用的工具我们真正的能把它学懂学透的话还是需要下非常大的功夫和努力的。然而,不是说兴趣才是最大的老师嘛,我也相信,只要你自己有兴趣,即使它再怎么强大和难搞,我们能做的还是非常多的,关键的就只是在于你自己的态度了。我这里想说的事,matlab对于我来说是非常有吸引力的,我不敢说自己多么喜欢它,但是兴趣确实蛮高的,所以我相信在以后的学习和工作当中matlab将成为我非常有用的帮忙工具和好伙伴,也许这要说有点太草率了,但是我觉得对它的评价怎么也不会让每一个接触

matlab实验心得总结

通过《matlab仿真》实验使我学习掌握了许多知识。首先是对matlab有了一个全新的认识,其次是对matlab的更多操作和命令的使用有了更高的掌握,最重要的事对matlab的处理能力有了一个更高的飞跃尤其是对相关函数的使用及相关问题的处理。 就对matlab相关的命令操作而言,通过这次实验的亲身操作和实践,学习掌握了许多原本不知道的或者不太熟悉的命令。比如说相关m文件的建立,画图用到的标注,配色,坐标控制,同一张图里画几幅不同的图像,相关参数的设置以及相关函数的调用格式等等。就拿建立一个数学方程而言,通过设置不同的参数达到所需要的要求和结果,而且还可以在不同的窗口建立不同的函数而达到相同的效果,比如说可以再命令窗口和m文件中通过不同的命令设置的到相同的所需的效果图。而自己对于矩阵及闭环传递函数的建立原本所掌握的知识几乎为零,而通过这次实验使我彻底的掌握了相关的命令操作和处理的方法,在这里我们不仅可以通过建立函数和参数来达到目标效果,而且还可以通过可视化的编程达到更快更方便,更简洁的效果。就拿可视化编程而言原本根本就只是听说而已罢了,从来就没有亲身去尝试过,然而现在自己却可以和容易的通过搭建不同功能木块来实现相关的函数及功能。这些在原本根本就不敢相信,然而通过《matlab仿真》的学习和实验亲身操作这些原本看似不可能的操作在此就变的轻而易举的事了。 再此我不得不题到的事指导老师教我们怎么去搭建构造相关闭环传递函数的实验,这个实验几乎在我们的这次实验中占据了非常大的比重,在后面的几个大一点的实验中几乎都是涉及这个方面的内容,我现在想说的事怎么去搭建相关的函数和功能模块对我们来说几乎已经不是什么难事了,就拿怎么去对模块功能的实现以及分析确实是个重点和难点。通过对同一个模块分析其对应的不同的参数分析图的建立去分析和解释其对应的相关功能和技术指标和性能分析是非常重要的,我们不可能只需要建立相关的模块和功能就说自己掌握了所有的相关知识和技术,真正的技术和知识是怎么去分析和解释相关的技术指标和功能参数才是重中之重。就此而言,我坦诚的说自己所掌握的还是十分的有限的,但是老师给我们介绍的相关方法和技巧还是十分有效果的,如果自己真的想在这方面有什么建树对自己以后的要求还是需要更改的要求的,万不可以就此止步不前,自命不凡,我们还需掌握和了解还有许多许多,我们真正所掌握的只是皮毛,要想取得更大的成绩就得不断的去努力学习和汲取相关的知识和技巧。万不可自以为傲,裹足不前,matlab真的是个非常强大和有用的工具我们真正的能把它学懂学透的话还是需要下非常大的功夫和努力的。然而,不是说兴趣才是最大的老师嘛,我也相信,只要你自己有兴趣,即使它再怎么强大和难搞,我们能做的还是非常多的,关键的就只是在于你自己的态度了。我这里想说的事,matlab对于我来说是非常有吸引力的,我不敢说自己多么喜欢它,但是兴趣确实蛮高的,所以我相信在以后的学习和工作当中matlab将成为我非常有用的帮忙工具和好伙伴,也许这要说有点太草率了,但是我觉得对它的评价怎么也不会让每一个接触过它的人吝啬是自己赞美之词。它不仅仅可以用来建模分析函数,还可以用来进行图形的建模和仿真,还可以用来分析系统和函数的参数稳定性等等。再次就不一一列举了,我怕三天也不会说完的。

《MATLAB及应用》实验报告2

核科学技术学院 实验报告 实验项目名称MATLAB符号计算 所属课程名称MATLAB及应用 实验类型上机实验 实验日期12月日 指导教师谢芹 班级 学号 姓名 成绩 一、实验名称 MATLAB符号计算 二、实验目的

(1)掌握定义符号对象的方法 (2)掌握符号表达式的运算法则以及符号矩阵运算 (3)掌握求符号函数极限及导数的方法 (4)掌握求符号函数定积分和不定积分的方法 三、实验原理 1. 函数极限及导数的方法 (1)函数极限:limit(F,x,a) 求符号函数f(x)的极限值。即计算当变量x趋近于常数a时,f(x)函数的极限值。 (2)limit(f):求符号函数f(x)的极限值。符号函数f(x)的变量为函数findsym(f)确定的默认变量;没有指定变量的目标值时,系统默认变量趋近于0,即a=0的情况。 (3)limit(f,x,a,'right'):求符号函数f的极限值。'right'表示变量x从右边趋近于a。 (4)limit(f,x,a,‘left’):求符号函数f的极限值。‘left’表示变量x从左边趋近于a。 2. 微分: diff(s):没有指定变量和导数阶数,则系统按findsym函数指示的默认变量对符号表达式s求一阶导数。 diff(s,'v'):以v为自变量,对符号表达式s求一阶导数。 diff(s,n):按findsym函数指示的默认变量对符号表达式s求n阶导数,n为正整数。 diff(s,'v',n):以v为自变量,对符号表达式s求n阶导数。 3. 函数定积分和不定积分的方法: int(s):没有指定积分变量和积分阶数时,系统按findsym函数指示的默认变量对被积函数或符号表达式s求不定积分。 int(s,v):以v为自变量,对被积函数或符号表达式s求不定积分。 int(s,v,a,b):求定积分运算。a,b分别表示定积分的下限和上限。 梯形法:trapz(x,y):x为分割点构成的向量,y为被积函数在分割点上的函数值构成的向量; 抛物线法:quad(f,a,b,tol),f是被积函数,[a,b]是积分区间,tol是精度。

实验四 方程求根Matlab实验报告

北京理工大学珠海学院实验报告 ZHUHAI CAMPAUS OF BEIJING INSTITUTE OF TECHNOLOGY 班级2012电气2班学号xxxxxxxxxx姓名陈冲指导教师张凯成绩 实验题目(实验四)方程求根实验地点及时间JB501 2013/12/31(3-4节) 一、实验目的 1.掌握用程序语言来编辑函数。 2.学会用MATLAB编写resecm.m以及Newtoniter.m函数分别实现二分法、牛顿迭代法求解。 二、实验环境 Matlab软件 三、实验内容 1、以书中第11页题目1和第154页题目16为例编辑程序来实现计算结果。 2、使用MATLAB进行编写: 第一步:编写resecm.m函数,代码如下

第二步:编写Newtoniter.m函数,代码如下 第三步:利用上述函数编辑命令:(可见实验结果中的截图)1.在此之前先建立一个名为f.m的M文件,代码如下 function y=f(x); y=x^3-x-1; 再编代码: clear all; resecm(‘f’,1,2,0.01) 得到结果:ans=1.3247 2.再建文件名为li6_4fun.m的M文件,代码如下 function y=li6_4fun(x); y=x^3+2*x^2+10*x-20; 和dili6_4fun.m的M文件,代码如下 function y=dili6_4fun(x); y=3*x^2+4*x+10;

再编代码: 得到结果:x=1.3688 若在语句中添加format long;语句,且精确到14位,则结果为 x=1.36880810782137 四、实验题目 1、用二分法求方程310x x --=在[]1,2内的近似值,要求误差不超过310-。 16、早在1225年,有人曾求解方程32 210200x x x ++-=(见前述题1)并给了高精度的实根* 1.368808107x =,试用牛顿法求得这个结果。 前述题:1、试取01x =,用迭代公式 1220210k k k x x x += ++,0,1,2,...k = 求方程32210200x x x ++-=的根,要求准确到310-。 五、实验结果

matlab实验报告总结精选

matlab实验报告总结 电气工程学院自动化102班 2012年12月21日 实验一 MATLAB环境的熟悉与基本运算 一、实验目的 1.熟悉MATLAB开发环境 2.掌握矩阵、变量、表达式的各种基本运算 二、实验基本知识 1.熟悉MATLAB环境 MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。 2.掌握MATLAB常用命令 变量与运算符变量命名规则如下: 变量名可以由英语字母、数字和下划线组成变量名应以英文字母开头长度不大于31个区分大小写 MATLAB中设置了一些特殊的变量与常量,列于下表。 MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符 表2 MATLAB算术运算符 表3 MATLAB关系运算符 表4 MATLAB逻辑运算符 表5 MATLAB特殊运算 的一维、二维数组的寻访

表6 子数组访问与赋值常用的相关指令格式 的基本运算 表7 两种运算指令形式和实质内涵的异同表 的常用函数 表8 标准数组生成函数 表9 数组操作函数 三、实验内容 1、新建一个文件夹 2、启动,将该文件夹添加到MATLAB路径管理器中。 3、保存,关闭对话框 4、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye 5、学习使用clc、clear,观察command window、command history和workspace等窗口的变化结果。 6、初步程序的编写练习,新建M-file,保存,学习使用MATLAB的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。 注意:每一次M-file的修改后,都要存盘。 练习A: help rand,然后随机生成一个2×6的数组,观察command window、command history和workspace等窗口的变化结果。

matlab学习心得体会三篇

matlab学习心得体会三篇 matlab学习心得体会一matlab中有丰富的图形处理能力,提供了绘制各种图形、图像数据的函数。他提供了一组绘制二维和三维曲线的函数,他们还可以对图形进行旋转、缩放等操作。matlab内部还包含丰富的数学函数和数据类型,使用方便且功能非常强大。 本学期通过对matlab的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了matlab的实用方法。通过理论课的讲解与实验课的操作,使我在短时间内学会使用matlab,同时,通过上机实验,对理论知识的复习巩固实践,可以自己根据例题编写设计简单的程序来实现不同的功能,绘制出比较满意的二维三维图形,在实践中找到乐趣。 matlab是一个实用性很强,操作相对容易,比较完善的工具软件,使用起来比较方便,通过操作可以很快看到结果,能够清晰的感觉到成功与失败,虽然课程中也会出现一些小问题,但是很喜欢这门课程。 matlab学习心得体会二学习matlab是听说它是一个功能强大的数学软件,但是正被微积分的计算缠身,听说有一个高级的计算器当然高兴,以后可以偷懒了,当然现在不能偷懒。听说关于自动化的计算特别复杂,如果有一种软件能帮忙解题,那是一种极大的解脱,有益于缩短研究时间。目前我只知道有三种数学软件,都是国外的,没有国内的,差距挺大的。matlab学起来挺顺手的,比c语言简单。但是深入学习的时候却困难重重,因为很多知识都没有学习,就算知

道那些函数,也没有什么用处。老师布置的作业难度大,写一篇实验,大一什么都不会,写一篇这种论文谈何容易。最多也就会一些数值计算、符号计算、简单绘图,根本不会什么实验。 学习matlab体会最多的是这个软件的功能强大,好多数学题都被轻易的解出。但是有一点遗憾,不知是我不会用,还是它没个功能,已知空间的电荷分布,求空间的电场分布。其中电场分布是无法用函数表达式表示。我知道计算机肯定可以实现,但是这个软件能不能实现就不知道了,我看过许多资料,但是在这方面没有提到相关信息。 总之,这个软件功能强大,不知什么时候国内才有类似的软件。 matlab学习心得体会三这是我在学习的过程中的一些技巧,或许对你有帮助,可能字数不你能满足你的要求,但是绝对是精华。 1,如果你要是不是计算机转业的,只是为了方便自己的工作或学习,那么你没有必要把matlab教程全部学会,只需要学你需要的那部分即可,比如,绘图,矩阵运算,等等,根据你个人的需要而定,但是基本命令、数据类型、基本的程序结构(条件语句,循环语句,嵌套)、文件的io是必须看的,因为任何一个程序都需要这几个基本的块。 2,你最好找一个熟悉编程的人来辅助你的学习,这就包括很多编程的技巧问题,程序的结构设计问题,对于程序的运行效率非常有帮助。有的时候,你编出来的程序,能够运行,但是耗时太长,也就是说你的程序没有错,但是不适合实际。或者说,对于规模小的问题能够解决,但是规模大一点的问题就需要很长很长的时间,这就需要

matlab实验心得体会

matlab实验心得体会 ]这个就是我自己做出来的,发现用soundsc听出来还行,但是用wavwrite就变的很难听。后来发现PB写的很好,而且还能够把前面一段没有噪音的部分给保存下来,我就看了他的代码,有几点体会: 1.将代码写在.m文件里,这样只需要该文件里的就可以而不必每次都去敲命令; 2.PB对于vector使用的比较熟,我一开始也想到能不能只将后面一段由噪声的给滤掉而保留以前的,但是没想到什么方法,看了PB的代码发现,他对于vector了解的比较深刻,我上面的想法最后只使用一句代码就搞定了 3.对于噪声频率,一定要选准确,PB对每一段噪声只使用的一个频率,就将噪声滤干净了,我用了每段噪声附近的几个波形还没有得到理想波形,最后我发现我选的中心频率和PB的只相差10~25赫兹,所以一定要精确,后来WH又试了一下,只发现改变5HZ的频率都不行 4.加入团队以来,尤其是加入种子班之后就一直告诫自己要时刻抱着一个学习的心态,对于任务不要只是敷衍,完成就好,而是自己一定要从中学到东西,而且在这个过程中一定要逐步掌握自己的学习方法,但是就是这个Matlab,我就是在敷衍了事,所以没有什么事情是可以敷衍的,学习发生在每时每刻,不能因为这是必上的课程而自己没有兴趣就蒙混过关,应该利用这个机会锻炼自己,积极起来,改变自己懒惰的弱点。 PS:附上修改后的代码 %get the samples rate and vector of the wave [xx, fs] = wavread('SunshineSquare'); xx = xx'; specgram(xx, [], fs); %^get the A from the frequencies of the noises fnoise = [0 1575 3150 4725]; ww = 2*pi*fnoise/fs; A = -2*cos(ww); %seperate the wave based on the tone "du" leng = length(xx); du = floor((7.749/10.791)*leng); %determine the h[n] of correspond noise hh = [1 A(1) 1]; for i = 2:4

matlab实验一实验报告

. 石家庄铁道大学 《Matlab语言及其应用》实验报告--实验1 Matlab软件环境的基本使用 实验者姓名:韩云星 实验者学号:20153254 实验者班级:信1501-1 所在学院:信息科学与技术学院 课程编号:RL090011 指导教师:刘展威 报告完成日期:2017年 4月 28 日

实验一熟悉MATLAB 工作环境 一、实验目的 1、了解Matlab的发展和主要功能; 2、熟悉Matlab工作环境的各个窗口; 3、掌握建立矩阵的方法; 4、掌握Matlab各种表达式的书写规则以及常用函数的使用。 二、实验内容 图 1实验内容1

图 2实验内容2 图 3实验内容3 三、实验设备和软件环境 处理器: Intel(R) Core(TM) i5-6200 CPU @ 2.30GHz (4 CPUs), ~2.3GHz 内存: 4096MB RAMIntel(R) Core(TM) i5-6200 CPU @ 2.30GHz (8 CPUs), ~2.3GHz 硬盘: Model: ATA ST2000DM001-1ER1 SCSI Disk Device 操作系统: Windows 7 旗舰版 64-bit (6.1, Build 7601) (7601.win7_gdr.101026-1503) Matlab版本:9.0.0.341360 (R2016a) 四、实验步骤或过程 1.在命令窗口依次输入下列命令,根据执行结果分析其功能: help 在命令窗口输入后,会看到帮助的目录信息,如下图所示

图 4 帮助的目录信息 lookfor inv 输入后会在命令窗口显示帮助中含有字母inv的函数和函数功能的列表。 图 5 帮助中含有字母inv的函数和函数功能 help inv 查找函数inv,并显示其帮助信息。 图 6查找函数inv Which inv 显示函数保存的位置信息和类型。 图 7显示函数保存的位置信息和类型 2.建立自己的工作目录,再将自己的工作目录设置到Matlab搜索路径下。用help命令查询自己的工作目录; 设置路径:

MATLAB的基本操作实验报告

MATLAB 的基本操作(MATLAB Basics ) 1. Plot the following graph (1) Plotting the two curves under one coordinate system with different color sin(), sin(3)y x y x == 代码: clear; x=-pi:pi/1000:pi; y=sin(x); plot(x,y,'r:'); hold on; x=-pi:pi/1000:pi; y=sin(3*x); plot(x,y,'b'); hold off; xlabel('x 轴'); ylabel('y 轴'); legend('y=sinx','y=sin(3x)'); 运行结果: (2) Plotting the standard normal distribution density function: )55(21)(2 2 ≤≤-= -x e x p x π 代码: clear;

MATLAB 的基本操作(MATLAB Basics ) x=-5:0.05:5; y=1/sqrt(2*pi)*exp(-x.^2/2); plot(x,y) 运行结果: (3)Using ‘subplot ’ command to plot 6 curves : )55()6,...,2,1() *sin()(ππ≤≤-==x i x i x f i 代码: clear; x=-5*pi:0.05:5*pi; for i=1:6 subplot(2,3,i); y=sin(i*x); plot(x,y); end 运行结果:

matlab实验心得体会

matlab实验心得体会 后来发现PB写的很好,而且还能够把前面一段没有噪音的部分给保存下来,我就看了他的代码,有几点体会: 1.将代码写在.m文件里,这样只需要该文件里的就可以而不必每次都去敲命令; 2.PB对于vector使用的比较熟,我一开始也想到能不能只将后面一段由噪声的给滤掉而保留以前的,但是没想到什么方法,看了PB的代码发现,他对于vector了解的比较深刻,我上面的想法最后只使用一句代码就搞定了 3.对于噪声频率,一定要选准确,PB对每一段噪声只使用的一个频率,就将噪声滤干净了,我用了每段噪声附近的几个波形还没有得到理想波形,最后我发现我选的中心频率和PB的只相差10~25赫兹,所以一定要精确,后来WH又试了一下,只发现改变5HZ的频率都不行 4.加入团队以来,尤其是加入种子班之后就一直告诫自己要时刻抱着一个学习的心态,对于任务不要只是敷衍,完成就好,而是自己一定要从中学到东西,而且在这个过程中一定要逐步掌握自己的学习方法,但是就是这个Matlab,我就是在敷衍了事,所以没有什么事情是可以敷衍的,学习发生在每时每刻,不能因为这是必上的课程而自己没有兴趣就蒙混过关,应该利用这个机会锻炼自己,积极起来,改变自己懒惰的弱点。 PS:附上修改后的代码

%getthesamplesrateandvectorofthewave [xx,fs]=wavread('SunshineSquare'); xx=xx'; specgram(xx,[],fs); %^gettheAfromthefrequenciesofthenoises fnoise=[0157531504725]; ww=2*pi*fnoise/fs; A=-2*cos(ww); %seperatethewavebasedonthetone"du" leng=length(xx); du=floor((7.749/10.791)*leng); %determinetheh[n]ofcorrespondnoise hh=[1A(1)1]; fori=2:4 hh1=[1A(i)1]; hh=conv(hh,hh1); end %filterthenoise yy=filter(hh,1,xx); %deletethetone"du" yy(du-65:du+65)=0; du=floor(10.751/10.791*leng);

matlab学习心得体会

Matlab学习心得 班级:机械124 姓名:XX 学号:XXXXX 电话:XXXXXX

matlab学习心得体会 MATLAB中有丰富的图形处理能力,提供了绘制各种图形、图像数据的函数。他提供了一组绘制二维和三维曲线的函数,他们还可以对图形进行旋转、缩放等操作。MATLAB内部还包含丰富的数学函数和数据类型,使用方便且功能非常强大。 本学期通过对MATLAB的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了MATLAB的实用方法。通过理论课的讲解与实验课的操作,使我在短时间内学会使用MATLAB,同时,通过上机实验,对理论知识的复习巩固实践,可以自己根据例题编写设计简单的程序来实现不同的功能,绘制出比较满意的二维三维图形,在实践中找到乐趣。 MATLAB是一个实用性很强,操作相对容易,比较完善的工具软件,使用起来比较方便,通过操作可以很快看到结果,能够清晰的感觉到成功与失败,虽然课程中也会出现一些小问题,但是很喜欢这门课程。 学习matlab是听说它是一个功能强大的数学软件,但是正被微积分的计算缠身,听说有一个高级的计算器当然高兴,以后可以偷懒了,当然现在不能偷懒。听说关于自动化的计算特别复杂,如果有一种软件能帮忙解题,那是一种极大的解脱,有益于缩短研究时间。目前我只知道有三种数学软件,都是国外的,没有国内的,差距挺大的。matlab学起来挺顺手的,比C语言简单。但是深入学习的时候却困难重重,因为很多知识都没有学习,就算知道那些函数,也没有什么用处。老师布置的作业难度大,写一篇实验,大一什么都不会,写一篇这种论文谈何容易。最多也就会一些数值计算、符号计算、简单绘图,根本不会什么实验。 学习matlab体会最多的是这个软件的功能强大,好多数学题都被轻易的解出。但是有一点遗憾,不知是我不会用,还是它没个功能,已知空间的电荷分布,求空间的电场分布。其中电场分布是无法用函数表达式表示。我知道计算机肯定可以实现,但是这个软件能不能实现就不知道了,我看过许多资料,但是在这方matlab学习心得体会三:学习matlab的心得,这是我在学习的过程中的一些技巧,或许对你有帮助. 1,如果你要是不是计算机转业的,只是为了方便自己的工作或学习,那么你没有必要把matlab教程全部学会,只需要学你需要的那部分即可,比如,绘图,矩阵运算,等等,根据你个人的需要而定,但是基本命令、数据类型、基本的程序结构(条件语句,循环语句,嵌套)、文件的IO是必须看的,因为任何一个程序都需要这几个基本的块。 2,你最好找一个熟悉编程的人来辅助你的学习,这就包括很多编程的技巧问题,程序的结构设计问题,对于程序的运行效率非常有帮助。有的时候,你编

相关文档