MATLAB编程基础

1. 变量

变量名必须以字母开头,其后可以是任意字母和下划线,但是不能有空格、中文和标点。MATLAB将变量分为3类:局部变量、全局变量和永久变量,并且自带一些特殊变量。关键字是程序设计中经常用到的流程控制变量,一共有20个,这些关键字不能作为变量名。

'break'	'case'	'catch'	'classdef'	'continue'	'else'	'elseif'	'end'	'for'	'function'	'global'	'if'	'otherwise'	'parfor'	'persistent'	'return'	'spmd'	'switch'	'try'	'while'

2. MATLAB的控制流

2.1 顺序结构

常见的输入、计算、输出三部曲程序就是顺序结构,一般与其他结构组成复杂结构。

2.2 if结构

如果只有两组命令执行,如下:

if expression    %判决条件
    command1     %条件为真,执行命令1,结束此结构
else
    command2     %条件为假,执行命令2,结束此结构
end

如果有n组命令执行,如下:

if expression1    %判决条件
    command1      %条件1为真,执行命令1,结束此结构
elseif expression2
    command2      %条件1为假,条件2为真,执行命令2,结束此结构
else
    commandn      %前面所有条件均为假,执行命令n,结束此结构
end

2.3 switch结构

switch value       %value为需要进行判决的标量或字符串
    case test1     
        command1   %如果value等于test1,执行command1,结束此结构
    case test2
        command2   %如果value等于test2,执行command2,结束此结构
    case testk
        commandk   %如果value等于testk,执行commandk,结束此结构
    otherwise
        command    %如果value不等于任何test,执行command,结束此结构
end

2.4 try结构

try
    command1 %命令1首先被执行,若正确,执行完成结束此结构
catch
    command2 %命令1出错,执行命令2,结束此结构
end

如果命令1出错了,可调用lasterr查询出错的原因。

2.5 for循环

for i=array  %指定循环变量
    command  %循环变量每次赋值都执行一次命令
end

2.6 while循环

while expression  %判决条件
    command       %若判决条件为真,继续执行,直到为假,结束循环
end

while循环不需要知道循环次数,只需要满足一定条件即可结束循环,而if循环必须明确循环次数,两者各有所长。

3. 控制程序流的其他常用指令

常用指令集合
return,强制转移控制权
input和keyboard,控制权暂时交给键盘
yesinput,相信我,基本不会用到
pause和pause(n),一个是暂停等待用户按任意键继续,一个是暂停n秒继续
continue,把控制传给下一个循环迭代,忽略任何循环体中保留的语句
break,满足条件,强制退出循环
error和warning,出错和警告,一般不用

4. 脚本和函数

4.1 脚本

脚本主要用于指令行很多的情况,而且脚本所涉及到的变量都会体现在工作区中。

4.2 函数

函数与脚本最大的区别就是函数可以调用(@函数名),因此函数文件的第一行是函数声明行。

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

4.3 匿名函数与子函数

匿名函数没有函数名,也不是函数文件,只包含一个表达式和输入输出参数。匿名函数的调用不需要函数句柄,与MATLAB内置函数调用一样。

f=@(input1,inputn)expression

子函数顾名思义就是相对于主函数而言,在同一个M文件中,第一个函数为主函数,其他函数为子函数,所有函数都需要函数声明行。

4.4 eval和feval函数

eval(s)利用MATLAB的注释器求s,feval(‘函数名’,变量),这两个基本无用。

4.5 函数的函数

简单点讲就是以函数名为自变量的函数,这类函数在最优化里面经常使用,类似形式函数名(@函数名,输入参数)。

5. M文件中变量的检测与传递

5.1 变量检测指令

指令集合 功能
nargin 在函数体内获得实际的输入变量
nargout 在函数体内获得实际的输出变量
nargin(‘fun’) 获取fun指定的函数的标称输入变量数量
nargout(‘fun’) 获取fun指定的函数的标称输出变量数量
varargin 可变数量输入变量列表
varargout 可变数量输出变量列表

5.2 跨空间变量传递和赋值

暂无

6.MATLAB程序调试

一般而言,程序出错只有三种情况,语法错误和逻辑错误最多,异常较少。调试的方法也有直接法和间接法,我个人而言喜欢编一段程序调试一段程序,这样可以最大限度的减少最后的出错率。

猜你喜欢

转载自blog.csdn.net/woaiyyt/article/details/112970531