Matlab 学习之旅(一)

一、脚本文件和M函数

1.1  脚本文件

     脚本文件是命令行的集合,由一系列 MATLAB 命令、内置函数及M 文件等组成的文件。脚本文件在MATLAB 编译器中建立,并被保存为.m文件,按顺序执行,执行过程中生成的变量存放在当前工作空间中。

    注意:脚本不能返回输出变量,所有创建的变量将保留在工作空间中,但脚本能提供图形输出,就像使用图形输出函数plot()一样。

例子:

   利用M文件编辑器,键入命令并保存为magicrank.m

       array = zeros(1,32);
       for n = 3:32        
            array(n) = rank(magic(n));
       end
       array
       bar(array)          %柱状图输出结果

      运行M文件,结果如下图1-1

                             

                                            图1-1 函数运行结果图

1.2 M函数

      M 函数也称子程序,它必须由MATLAB调用并具有一定的通用性。

1.2.1 M函数的结构

    从结构上看,M函数和脚本文件相比,最大的区别就是多了一个“函数声明行”。

    M 函数的格式: function [返回变量表]=函数名(输入变量列表)
                       注释说明语句段
                       函数体语句
          调用格式:输出变量=函数名(输入变量)

   说明:1)函数定义名应和文件保存名一致,当一个 M 文件中含多个 M 函数时,第一个函数是主函数,M文件名必须是主函数名;

           2)MATLAB 中的函数文件名必须以字母开头,可以是字母、下划线及数字的任意组合,但不能超过31个字符

           3)M 函数注释由%开始的行表示,help function_name 显示的是第一行后的注释。

 

二、 数据分析

2.1 多项式及其函数

    MATLAB中使用一维向量来表示多向式,将多项式的系数按降幂次序存放在向量中,如多项式P(x)的具体表示方法如下:

              的系数构成的向量为:

2.1.1 多项式求根

   matlab提供函数roots求解一个多项式的根

   例:求解多项式的根

     在命令窗口输入: 

    >> p = [3,-10,0,15,1000]; 
    >>r = roots(p)

输出结果如下:

r =

   4.0283 + 2.8554i
   4.0283 - 2.8554i
  -2.3616 + 2.8452i
  -2.3616 - 2.8452i

2.1.2 多项式的运算

    多项式运算函数

运算关系


对应函数指令


乘法


conv(a,b)


除法


[q,r] = deconv(a,b)

q是多项式a除以多项式b的商,余式是r


多项式求导


polyder(p)


多项式积分


Polyint(p,k),返回多项式p的积分,积分常数项为k。

2.2 有理多项式

   在很多应用中,如傅里叶、拉普拉斯和Z变换中,出现了两个多项式之比,matlab中多项式的展开函数如下:

        [r,p,k]=residue(b,a)

        b、a 分别是分子、分母多项式系数向量;r、p、k分别是留数、极点和直项

例:将部分分式展开,结果应为

    代码:

>> a = [1 5 6];
>> b = [1];
>> [r,s,k] = residue(b,a)

输出结果:

r =

   -1.0000
    1.0000

s =

   -3.0000
   -2.0000

k =

     []

Matlab 学习之旅(一)

时间: 2024-10-22 22:59:19

Matlab 学习之旅(一)的相关文章

180分钟的python学习之旅

最近在很多地方都可以看到Python的身影,尤其在人工智能等科学领域,其丰富的科学计算等方面类库无比强大.很多身边的哥们也提到Python非常的简洁方便,比如用Django搭建一个见得网站只需要半天时间即可,因此也吸引了我不小的兴趣.之前相亲认识过一个姑娘是做绿色环保建筑设计行业的,提过她们的建筑物的建模也是使用Python,虽然被女神给拒绝了,但学习还是势在必行的,加油. 这部分只涉及python比较基础的知识,如复杂的面向对象.多线程.通信等知识会放在之后的深入学习中介绍,因此整个学习过程也

基于 Android NDK 的学习之旅----- C调用Java

http://www.cnblogs.com/luxiaofeng54/archive/2011/08/17/2142000.html 基于 Android NDK 的学习之旅----- C调用Java许多成熟的C引擎要移植到Android 平台上使用 , 一般都会 提供 一些接口, 让Android sdk 和 jdk 实现. 下文将会介绍 C 如何 通过 JNI 层调用 Java 的静态和非静态方法. 1.主要流程 1.  新建一个测试类TestProvider.java a)       

SSIS 学习之旅 序章 和 简介

SSIS 学习之旅目录: 第一章: SSIS 学习之旅 第一个SSIS 示例(一) 第二章: SSIS 学习之旅 第一个SSIS 示例(二) 第三章: SSIS 学习之旅 数据同步 第四章: SSIS 学习之旅 FTP文件传输-FTP任务 第五章: SSIS 学习之旅 FTP文件传输-脚本任务 第六章: SSIS 学习之旅 FTP访问类 SSIS是Microsoft SQL Server Integration Services的简称,是生成高性能数据集成解决方案,是Microsoft BI 解

【转】基于 Android NDK 的学习之旅-----数据传输(引用数据类型)

原文网址:http://www.cnblogs.com/luxiaofeng54/archive/2011/08/20/2147086.html 基于 Android NDK 的学习之旅-----数据传输二(引用数据类型)(附源码) 基于 Android NDK 的学习之旅-----数据传输(引用数据类型) 接着上篇文章继续讲.主要关于引用类型的数据传输,本文将介绍字符串传输和自定义对象的传输. 1.主要流程 1.  String 字符串传输 a)         上层定义一个native的方法

[转载]Matlab实用小技巧——Matlab学习笔记

1.. Ctrl+C 中断正在执行的操作 如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用Ctrl+c来中断.MATLAB这时可能正疲于应付,响应会有些滞后. 2. figure命令新建一个绘图窗口 figure 可以打开一个空的绘图窗口,接下的绘图命令可以将图画在它里面,而不会覆盖以前的绘图窗口.当有多个figure窗口时,在命令窗口中执行如Plot等命令将覆盖当前figure窗口中的对象.所谓的当前figure窗口,也就是最后一次查看的窗口(可以用命令gcf得到). figu

Git命令学习之旅——日志和穿梭版本号

在总结了git命令的基础之后,接下来我们看一下基础的一些进阶内容:删除撤销命令.日志查看命令等 既然有加入文件的功能,那么相相应的肯定有移除文件的功能,命令例如以下:git rm [文件名称] 在输入命令之后,例如以下图所看到的: 提示已经删除了"c.txt"文件.这个时候再用git status查看一下状态,例如以下图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JB

Android热修复学习之旅——HotFix完全解析

在上一篇博客Android热修复学习之旅开篇--热修复概述中,简单介绍了各个热修复框架的原理,本篇博客我将详细分析QQ空间热修复方案. Android dex分包原理介绍 QQ空间热修复方案基于Android dex分包基础之上,简单概述android dex分包的原理就是:就是把多个dex文件塞入到app的classloader之中,但是android dex拆包方案中的类是没有重复的,如果classes.dex和classes1.dex中有重复的类,当classes.dex和classes1

菜鸟的Android学习之旅(一)

最近在拜读郭霖老师的经典<第一行代码>,作为一名菜鸟级的新手来说这本书确实对新手很友好,讲的很详细.如果你也像我一样作为一只小菜鸟想学习Android,还不了解这本书的,还没有想好入手哪一本书作为自己新手启蒙书的同学,个人觉得你就不要徘徊了,加入购物车吧! 因为我才是刚开始学习不久,第二章才学习了很少一部分,所以我没办法说点有营养的东西,我就先记录一下我学习过程中经历的错误吧. 第二章开始,郭老师教我们如何手动创建活动.边看书边敲代码,但是你会发现当你完全按照书上所说敲完所有需要的代码之后代码

iOS学习之旅10 ATS(App Transport Security)对HTTPS协议要求引起的问题

问题描述 编写以下代码获取网络某个资源的MIMEType 1 -(void)getMIMEType 2 { 3 //路径 4 NSURL *url = [NSURL URLWithString:@"https://www.baidu.com/img/bd_logo1.png"]; 5 //请求对象 6 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 7 NSOperationQueue *