MATLAB学习笔记——程序设计

Posted 归止于飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB学习笔记——程序设计相关的知识,希望对你有一定的参考价值。

文章概述

在进行matlab的程序设计之前,我们先要弄明白matlab属于什么编程语言,程序是怎么运行起来的。
首先,我们要知道可以进行命令执行和函数处理的命令与函数在MATLAB中以“.m”文件形式储存,成为M文件。
MATLAB中的M文件分为脚本文件与函数文件。脚本文件是一系列命令的集合;而函数文件是为了完成某中特定运算功能的程序文件。
MATLAB中为用户提供了M文件的编辑器与编译器,MATLAB中一系列储存的函数大都也是以M文件形式存储。用户也可以自行建立函数库。

一 输入与输出语句

1.输入语句

输入语句从默认设备或标准的输入设备中读取数据。大多数情况下,默认的输入设备是键盘。
A=input(提示信息),其中提示信息是一个字符串。
当输入的数据是字符串时,字符串前后需要加单引号,用来界定字符串的开始与结束。
也可以在input的提示信息后面加一个’s’,例如:

A=input('What's your nationality:','s')
此时可直接输入Chinese

注意:

  • 在输入字符前输入了空格,空格会包含在字符串中
  • 没有指定为字符串,而直接输入字母,MATLAB会报错
  • 如果没有指定输入的为字符串,而又输入了一个变量名,MATLAB会将变量名的值输入。

2.输出语句

MATLAB提供的最简单的输出函数是disp函数
输出格式:disp(输出项)

A=1;
disp(A)

A=Nice
disp(Nice)

A=[1,2,3;4,5,6]
disp(A)

二 脚本文件

在实验MATLAB时,我们一般情况下可以直接在命令窗口直接输入处理命令。 当命令比较多或控制流程比较复杂时可以写在文件中去允许文件。
脚本文件的构成比较简单,由一系列命令组成。以".m"作为后缀。在脚本文件允许时所产生的变量都是全局变量,将驻留于MATLAB的工作空间中。
例题1:提示用户输入圆的半径,计算圆的面积并输出。

r=input('请输入圆的半径=');
circumference=2*pi*r;
area=2*pi*r;
disp(area);
disp(circumference);

例题2:编写一个脚本文件,完成以下功能:绘制函数y=2x^2+3x-1,x∈[-4,4]
所描述的曲线图;求x=-4,-2,0,2,4的值

x = linspace(-4,4,100);
y = 2*x.^2+3*x-1;
plot(x,y);
hold on;
plot(x,y,'*r');
title('y(x)=2x^2+3x-1');
grid on;

注意:MATLAB中脚本文件的注释以%结尾

三 函数文件

1.函数文件的创立

在菜单栏创建函数文件后,系统将弹出新的编辑器窗口:

function [outputArg1,outputArg2] = untitled(inputArg1,inputArg2)
%UNTITLED 此处显示有关此函数的摘要
%   此处显示详细说明
outputArg1 = inputArg1;
outputArg2 = inputArg2;
end

函数文件以function开始,以end结束。主要包括以下部分:
function[输出参数]=函数名(输入参数)
注释说明语句
函数主体
end
脚本文件与函数文件的差别:

  • 脚本文件没有输入参数,也不返回参数;函数文件相反
  • 脚本文件中的变量执行后保留于工作空间,而函数文件除了输入与输出函数外,仅作为函数的内部变量
  • 脚本文件可以直接执行,函数文件需要被调用
  • 函数文件可以调用脚本文件,同时被调用的脚本文件中所有变量均作为该函数的内部变量存在。
  • 函数文件中可以创建多个子函数。

例题:计算函数y=sin(2x)exp(0.7x)在[2,4,6]处的值。

function [y] = function1_2(x)
%y=sin(2x)exp(0.7x)
%   2021-10-27
a = sin(2*x);
b = exp(0.7*x);
y = a.*b;
end

2.参数控制

用户可以根据两个预定义变量nargin和nargout记录输入参数与输出参数的个数。

  • nargin,返回实际输入的参数的个数
  • nargout 返回实际输出的参数的个数

3.全局变量与局部变量

MATLAB变量名命名规则:

  1. 变量名称第一个字符必须为字母,后面可以接英文字母,数字和下划线
  2. 区分大小写
  3. 不能超过31个字符
  4. 不能与预留关键字重名

全局变量的命名格式:global 变量名。

四 程序结构

1.顺序结构

顺序结构指程序按排列顺序依次进行。
例题:利用顺序结构编写绘制正弦和余弦曲线

x = 0:0.1:2*pi;
y1 = cos(x);
plot(x,y1);
hold on;
y2 = sin(x);
rlegend('cos(x)','sin(x)');
xlabel('x');

2.选择结构

(1) if语句

a.if语句

if 条件
    操作
end

if语句中选择条件为真即继续运行。需要以end结尾。

b.if-else

c.if-elseif-else

与python的if-elif-else语句类似。便于表示分段函数

d.嵌套的if-else语句

和其他程序设计语言类似

(2) switch语句

注意case后面的表达式可以是标量,字符串,元胞数组等等

(3) try-catch语句

try-catch语句的功能和error类似,主要用于对异常情况的处理。

try
    语句组1
catch
    语句组2
end

try语句会先试探性执行语句组1,当语句组1出现错误时,catch会捕获它,转而执行catch后面的语句2.
如果执行catch后面的语句中再次出现错误,Matlab将退出程序。

(4) MATLAB中的is函数

a.isletter

isletter函数中的参数如果是字母表中的字母,则返回逻辑1;反则返回逻辑0。

b.isempty

如果函数中的变量为空,则返回逻辑1;反则返回0

c.iskeyword

iskeyword判断名称是否为Matlab的关键词。如果是则返回1;反则返回0.

3.循环结构

(1) for循环

语句格式如下

for 循环变量=初值:步长:终值
    循环体语句
end

在不设置步长时,默认为1.

(2) while循环

在循环次数不固定时,可以使用while循环。
语句格式:

while 条件
    循环体语句
end

五 控制语句

1.结束循环

利用continue;结束循环,进入下一循环

2.终止循环

break;直接退出循环。

3.转换控制

return命令主要用于函数中。通常情况下,在被调用的函数执行完后,Matlab会把函数的控制权转至主调函数或指定窗口。
return:结束执行被调用的函数,把控制权转出

4.使用键盘

执行到keyboard时停止程序的运行,将控制权交给键盘。只有用户输入dbcont或者dbquit时,将控制权返回程序。
与input命令相比,keyboard允许输入多个命令。
dbquit会直接退出程序,而dbcont会终止调试并继续执行

5.暂停控制

pause:暂停程序,按任意键继续

6.提示警告信息

  • error(‘message’):显示出错的信息message,终止程序
  • errordlg(‘errorstring’,‘dlgname’):显示出错信息的对话框,标题为digname
  • warning(‘message’):显示警告信息message,程序继续运行

以上是关于MATLAB学习笔记——程序设计的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB学习笔记——程序设计

[学习一个] Matlab GUI 学习笔记 Ⅰ

学习笔记 链接

《数字图像处理 MATLAB版》学习笔记

[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段

Matlab网课第4章学习笔记