---恢复内容开始---

4-1 M文件编辑器

  • 在命令窗口输入edit命令,可以打开M文件编辑器,创建新的M文件
  • 在命令行中输入edit filename,那么可以打开在当前目录环境下的M文件

4-2 M文件编辑器的设置

  •  在M文件编辑器中选择File-Preference菜单项

4-3 M脚本文件的编写

  •  创建脚本文件,由一系列按照用户要求执行的命令构成,称为M文件,.m后缀
  • 文件的变量驻留在工作空间内,从工作空间可以查询到脚本文件执行中的变量信息,还可以用whos查询,不使用时需要用clear命令进行清除
  • 脚本文件的执行:run命令或者F5
  • 一些控制函数:
  1.  disp:只显示结果,不显示变量名
  2. echo:脚本文件执行过程中,执行脚本文件内容是否显示在命令窗口
  3. input:提示用户输入数据

4-4 流程控制

  • for循环结构

      一般格式:

       for x=array      %array为条件数组,任何合法的数组生成语句都可以

commands   %循环代码

end

注:等效数组的执行效率比for循环快几个数量级。等效数组的解决办法也叫向量化的解决方案;数组的为标量化解决方案。

  • while循环结构

      一般格式:

while expression  %条件表达式,标量或者数组表达式;为数组时,只有数组中的所有元素均为true时,循环体内的commands才会一直执行下去。

commands

end

注:当expression为数组时,可以使用any函数作为while循环的条件判断式

  • if判断结构

      if expression

commands

end

注意:

          当expression 为(expression 1|expression 2)时,那么当计算的expression1为false时,expression2才执行

          当用户需要在判断条件为true和false时,分别执行不同的命令,那么可以选择使用if-else 判断结构:

if expression

commands when expression is true

else

commands when expression is false

end

 当用户需要执行多个操作语句时,可以使用elseif语句结构。

  • switch分支选择结构

      结构格式:

      switch expression

case test_expression1

commands1

case test_expression2

commands2

otherwise

commands3

end

  • try-catch结构

try

commands1  %都被执行

catch

commands2    %有错误,执行commands2

end    %无错误,跳到此处

用户也可以在catch模块中,使用rethrow函数来将实际的字符串显示出来,并结束程序。

4-4 控制命令

常见的控制语句包括input、continue、break、return、echo等

continue命令:结束本次循环,直接放到循环控制体内

break命令:跳出break所在的循环体,如果有多个循环语句嵌套时,break只能跳出所在的那个循环,而不跳出整个循环结构。

return命令:将函数的控制权转回到主调函数或者指定的窗口

keyboard命令:将该命令放到M文件中,当程序执行到该命令时,将停止程序的执行,而将命令控制权交给keyboard;当用户完成命令的执行后,按return返回

error和warning命令:error 终止,warning继续执行。

4-5 程序的向量化概念

 逻辑数组和向量化

  • 逻辑数据可以通过关系和逻辑表达式来创建
  • 也可以通过logical命令来创建逻辑数组
  • 对于逻辑数组的联系也可以通过whos命令来查看

4-6 M函数文件

        在Matlab中允许用户创建3种类型的函数:M函数、匿名函数和内联函数,本节主要介绍M函数文件。

  • 函数文件的创建
  1. M函数文件的第一行必须是function引导的声明语句,如:function y=sinex(x)
  2. 在函数声明行和第一行命令之间可以放入若干注释行
  3. 在M函数文件中也可以调用M脚本文件
  4. 在M函数文件中也可以创建一个或者多个子函数,即局部函数;子函数只能被M函数问你内的主函数调用

  • 输入输出参数
  1. n=nargin 获取实际输入函数体的输入参数个数
  2. n=nargin(‘fun’) 获取指定函数fun的输入参数个数
  3. n=nargout  获取实际输入函数体的输出参数个数
  4. n=nargout(‘fun’) 获取指定函数fun的输出参数个数
  5. 在函数声明过程中,如果将varargin和varargout作为输入参数列表和输出参数列表的最后一个参数,那么在函数调用时,函数就可以接受任意个数的输入参数,也可以输出任意个数的输出参数。P138
  • 函数句柄和匿名函数

      用户需要将一个函数的标示作为参数传递给另一个函数,Matlab提供了内联函数(inline function)和匿名函数(anonymous function)

  1. 匿名函数:

  1. 内联函数:可以通过字符串表达式来创建函数

4-7 程序的调试和剖析

           程序调试常见的错误:语法错误和运行错误

          直接调试方法:

  1. 将被调试语句的分号去掉,使计算的中间结果在命令窗口显示出来
  2. 在疑似问题出添加多余语句,来显示要查看的变量
  3. 灵活使用keyboard命令参与程序调试
  4. 将函数文件变成脚本文件来查询,即将函数文件的第一行用%加以注释,这样函数文件运行中的变量数值就可以在工作空间进行显示

---恢复内容结束---

Matlab---从入门到精通 Chapter 4 编程基础的更多相关文章

  1. Java入门——(1)Java编程基础

    Java入门--(1)Java编程基础 第二章 Java编程基础   JAVA 代码的基本格式: 修饰符 class 类名{ 程序代码 }   2.1关键字:赋予了特殊含义的单词.   2.2标识符: ...

  2. (升级版)Spark从入门到精通(Scala编程、案例实战、高级特性、Spark内核源码剖析、Hadoop高端)

    本课程主要讲解目前大数据领域最热门.最火爆.最有前景的技术——Spark.在本课程中,会从浅入深,基于大量案例实战,深度剖析和讲解Spark,并且会包含完全从企业真实复杂业务需求中抽取出的案例实战.课 ...

  3. Matlab 编程入门(一):编程基础

    上学期学了一些matlab的知识,这学期再用时竟然发现已经忘得差不多了(┬_┬) 于是决定重新开始并将它们记录下来,也方便自己以后查漏补缺! M文件编程 脚本文件 matlab有自己的命令行窗口,对于 ...

  4. 【MySQL】从入门到精通8-SQL数据库编程

    上期:[MySQL]从入门到精通7-设计多对多数据库 第零章:Mac用户看这里: mac终端写MySQL和windows基本相同,除了配置环境变量和启动有些许不同以外. 先配置环境变量,在终端输入vi ...

  5. web入门之十 JS高级编程基础

    学习内容 JavaScript函数 JavaScript类和对象 解析JSON数据 能力目标 深入了解JavaScript函数 熟悉JavaScript面向对象编程 熟练进行JSON数据解析 本章简介 ...

  6. Matlab 从入门到精通 Chapter11 文件读取I/O

    11.1 工作空间数据读取 将工作空间的变量保存为文件,可以使用save命令.  save('filename') 将文件保存在当前目录下,文件名为filename.mat save('filenam ...

  7. 《Matlab实用案例》系列Matlab从入门到精通实用100例案例教程目录(持续更新)

    目录 1. 专栏简介 2. 专栏地址 3. 专栏目录 1. 专栏简介 2. 专栏地址 「 刘一哥与GIS的故事 」之<Matlab使用案例> 3. 专栏目录 [MATLAB统计分析与应用1 ...

  8. [SharePoint][SharePoint 2013从入门到精通]Chapter 1 介绍 SharePoint2013

    本章你讲学到 什么是SharePoint2013 SharePoint2013如何加强协作与共享 SharePoint2013中有什么用户权限 什么是SharePoint Online 本地部署与在线 ...

  9. Matlab从入门到精通 Chapter5 数据可视化--

    5-1 图形绘制示例 >> x2=-17:0.02:3; >> y2=1./((x2+3).^2+1)+1./((x2+9).^2+4)+5; >> subplot ...

随机推荐

  1. hdu 3549 Flow Problem 【最大流】

    其实还是不是很懂dinic----- 抄了一个模板--- http://www.cnblogs.com/naturepengchen/articles/4403408.html 先放在这里--- #i ...

  2. GCC中的弱符号与强符号

    GCC中的弱符号与强符号 我们经常在编程中碰到一种情况叫符号重复定义.多个目标文件中含有相同名字全局符号的定义,那么这些目标文件链接的时候将会出现符号重复定义的错误.比如我们在目标文件A和目标文件B都 ...

  3. BZOJ 3126 [USACO2013 Open]Photo (单调队列优化DP)

    洛谷传送门 题目大意:给你一个长度为$n$的序列和$m$个区间,每个区间内有且仅有一个1,其它数必须是0,求整个序列中数字1最多的数量 神题,竟然是$DP$ 定义$f_{i}$表示第i位放一个1时,最 ...

  4. pytorch 6 build_nn_quickly 快速搭建神经网络

    import torch import torch.nn.functional as F # replace following class code with an easy sequential ...

  5. (转)C++引用

    前言:引用是C++一个很重要的特性,最近看了很多有关引用的资料和博客,故在此对引用的相关知识进行总结 一.什么是引用 引用,顾名思义是某一个变量或对象的别名,对引用的操作与对其所绑定的变量或对象的操作 ...

  6. fetch 如何请求数据

    fetch 如何请求数据 在 传统Ajax 时代,进行 API 等网络请求都是通过XMLHttpRequest或者封装后的框架进行网络请求,然而配置和调用方式非常混乱,对于刚入门的新手并不友好 二 与 ...

  7. Jenkins学习总结(5)——免费DevOps开源工具简介

    一:开发工具 1.版本控制系统 Git Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. 2.代码托管平台 GitLab GitLab是一个利用Ruby on ...

  8. oauth2.0里回调地址返回code中如何让code不显示在URL里?

    背景: 最近在调用对方提供的oauth2.0接口的时候,返回code在URL显示,但是会影响到本系统调用其他的菜单项的操作,所以想把返回的code值去掉. 解决办法:     想了各种解决办法,目前把 ...

  9. MySQL 创建表时,设置时间字段自己主动插入当前时间

    MySQL 创建表时,设置时间字段自己主动插入当前时间 DROP TABLE IF EXISTS `CONTENT`; CREATE TABLE `CONTENT` ( `ID` char(20) N ...

  10. linux svn命令具体解释

    检測是否安装svn:svnserve --version svn服务的关闭:killall svnserve 创建svn库:svnadmin create /opt/svn/repos 配置自己主动启 ...