matlab网课笔记-----结构化程式与自定义函数

结构化程式与自定义函数

结构化编程

编辑栏图标的作用

  1. fx的作用是寻找函数

  2. 百分比符号%是注释(右键也可以注解)

  3. 用双百分比符号%%可以进行段落分层

    ​ %%

    ​ 段落一

    ​ %%

    ​ 段落二

    由此可以通过Run section按钮分开运行

  4. 在编辑器的最左栏,点击每一行的横线可以设置断点

  5. 右键智能缩进可以帮助规范函数书写的规律

流程控制指令

matlab网课笔记-----结构化程式与自定义函数

​ tic toc 是用来计算时间的代码

​ tic

​ program

​ toc

​ 可以算出来执行program所需要的时间

逻辑运算符

matlab网课笔记-----结构化程式与自定义函数

比较常用的结构化程式语法

  1. if else语法

    ​ if(condition1)

    ​ statement1

    ​ else(else if (condition2))

    ​ statement2

    end

  2. switch语法

    ​ switch expression

    ​ case value1

    ​ statement1

    ​ case value2

    ​ statement2

    ​ …

    ​ otherwise

    ​ Final statement

    end

  3. while语法

    ​ while condition

    ​ statement

    end

  4. break语法

    ​ 与c一样

小技巧

  1. “…”是换行号,matlab不会像c一样忽略换行号,需要换行的话要在换行的位置加上换行号

    eg. A=[1 2 3 4 5 6 ;…

    ​ 6 7 8 9 5 2]

  2. ctrl+c可以在程序运行中直接结束

  3. 使用循环语句应尽量预先分配内存空间

    Program1

    tic

    ​ for ii = 1:2000

    ​ for jj = 1:2000

    ​ A(ii,jj) = ii + jj;

    ​ end

    ​ end

    toc

    ​ 程序用时4s

    Program2

    tic

    A = zeros(2000, 2000); 预先为变量分配内存空间

    ​ for ii = 1:2000

    ​ for jj = 1:2000

    ​ A(ii,jj) = ii + jj;

    ​ end

    ​ end

    toc

    程序用时2s

    对于程序一,没有预先为变量A分配内存,因此每当A的形状发生改变时,都需要重新为A分配内存地址,这花费了更多的时间.

自定义函数

  1. 函数名.m的文件形式定义函数

    在MATLAB文件中定义函数的格式如下:

    function [输出变量名] = 函数名(输入变量名)

    函数的文档

    函数代码

  • function是一个关键字,声明该文件中保存的是一个函数.
  • 输入变量输出变量是非必须的,函数既可以没有输入变量,也可以没有输出变量.
  • 函数名应与**.m**文件名相同,且不包含特殊字符(最好不要有中文).
  1. 在自定义函数中的乘法与除法尽量用点乘(.*)与点除(./),这样的话如果以向量形式输入多个数据,自定义函数可以分别处理对应的数据而不会造成混乱

  2. 在每个脚本的开头,应添加下述语句,清空工作区缓存以及之前程序运行的痕迹:

    clear all % 清空工作区内存中的变量

    close all % 关闭之前程序绘制的图像

    clc % 清空之前程序在终端的输出

  3. 在运算和赋值语句后应添加分号;抑制输出

    在所有运算和赋值语句都应该添加分号;抑制输出,若需要向终端输出一个变量,应对其调用disp方法.

  4. Matlab内置的函数参数

    函数参数 意义
    imputname 输入变量名列表
    mfilename 函数源代码文件名
    nargin 输入变量数
    nargout 输出变量个数
    varargin 可变长输入参数列表
    varargout 可变长输出参数列表

    eg. 计算长方体体积

    function [volume]=pillar(Do,Di,height)
    if nargin==2,
    height=1;
    end
    volume=abs(Do.2-Di.2).heightpi/4;

  5. 以函数句柄的形式定义函数

    函数句柄 = @(输入变量) 输出变量

    eg.

    若有下列语句:[email protected](x)1/2.(x==-1/2)+1.(x>-1/28&x<1/2)+1.2.*(x==-1/2);

    则相当于建立了一个函数文件:

    % xsqual.m

    function y=xsqual(x)

    y=1/2.(x==-1/2)+1.(x>-1/28&x<1/2)+1.2.*(x==-1/2);


written by 杨宗宪
update on 6/10/2020