Matlab编程笔记

本文最后更新于:2024年8月12日 上午

Matlab基础操作

一、如何运行一个程序

1.如果程序中有function,但没有输入与输出的,直接保存,注意保存文件名必须和函数名相同,保存后在运行即可;
2.无function,有%%分节符的,在选定之后可以直接Ctrl+Enter,即可运行;
3.function程序有输入但没有输出时,此时只可调用。

二、使用过程中要灵活使用帮助

函数有自定义函数(function),以及内置函数,而对于内置函数,可以在命令行中输入:doc 内置函数名
例如:

1
doc plot

再按Enter回车即可出现函数的详细使用页面,也就是帮助页面。碰到问题上网百度也可以。

Matlab核心操作一:矩阵操作

Matlab中的数据一般为:数组、向量、表格、矩阵。文件中,程序首行常常输入:

1
clear;clc;close all;

来分别清空工作区中的变量,清空命令行窗口的命令和关闭所有图形。同时在Matlab程序中,有时候语句代码句尾加”;”,表示在命令窗口中不显示输出结果,而不加”;”,则会在命令窗口中显示输出结果。

一、输入矩阵

输入矩阵可以用直接输入法,例如:

1
A=[x,x,····] %x为变量

也可以用生成矩阵法,例如:

1
2
3
4
5
A=zeros(5,5) %zeros为内置函数,用于生成零矩阵
A(1,1)=1
%或者:
A=[zeros(3);zeros(3)] %该矩阵表示为6行3列的零矩阵
A=[zeros(3) zeros(3)] %该矩阵表示3行6列的零矩阵

二、矩阵的运算

1.矩阵运算符 .* 代表矩阵中对应的元素相乘;
2.矩阵运算符 * 代表按照矩阵的乘法规则相乘;
3.同理 .^ , ^ , ./ , / , + ,- ,\ , 运算符号运算类似。(即加 . 的是对应元素进行运算,没加的就是按照数学上的矩阵运算)

三、矩阵的一些常用操作

矩阵中的end,代表最后一个的意思,例如:

1
A(end,3) %表示矩阵A中最后一行第三列中的元素

矩阵中的 : ,代表三种意思,首先是代表“所有”的意思,例如:

1
A(:,1) %表示所有的行第一列,也就是第一列的元素

特别的,例如:

1
2
A(:,:) %表示A矩阵本身
A(:) %则表示A中的所有元素按列存储,即将A转化为一个列向量

其次是代表“到”的意思,例如:

1
1:3 %表示[1,2,3]一个行向量的意思,注意[1 2 3]与[1,2,3]都代表一个行向量的意思

最后是代表“生成等差数列”的意思,例如:

1
1:3:10 %表示[1,4,7,10],即1为初始值,3作为步长(公差),10代表最后一个数不超过的值

再举一个综合的例子:

1
A(1:3:10,3:6) %表示矩阵A中的第1,4,7,10行第3,4,5,6列的值

Matlab核心操作二:编程命令

一、条件语句

代码案例1:

1
2
3
if 条件
语句组(语句组中也可以继续嵌套if······end)
end

代码举例2如下:

1
2
3
4
5
6
7
if 条件1
语句组1
else if 条件2
语句组2
else ······
语句组n
end

二、循环语句

代码案例1:

1
2
3
for 循环变量=[数组]
语句体(也可嵌套for······使用)
end

循环语句中可以使用break,来跳出当前循环,使用continue,来进行下一轮循环。
代码案例2:

1
2
3
4
5
try
语句组1 %没有语法错误时,则执行该语句
catch
语句组2(保存错误信息) %有错误时,则执行该语句
end

其他的编程命令,则是由这些基本命令的组合,多去看,多思考即可明白

Matlab函数操作

1.脚本文件代码中无function,对于脚本文件命名不要使用纯数字,有时候会对仿真结果造成影响;
2.函数文件代码中有function,且第一个不被注释的行就有function,注意函数文件名和函数名要相同,其次函数定义文件和函数调用文件(脚本文件、命令窗口)要在同一个目录。
3.定义函数时,有一些方便的命令,例如:

1
2
3
4
varargin %表示可以输入多个输入参数
varargout %表示可以输出多个输出参数
nargin %表示输入参数的个数
nargout %表示输出参数的个数

这些都可以使用帮助页面进行了解。下面就例举一些代码来帮助理解。
代码举例1:

1
2
3
4
5
6
7
8
9
10
11
12
13
function [x,y]=f(a,b) %此为两个输入,两个输出的形式
if nargin ==1 %输入参数为一个
b=0;
end
if nargin==0 %无输入参数
a=0;
b=0;
end
x=a+b; %正常情况有两个输入参数,两个输出参数
y=a-b;
if nargout==1
x=[a+b,a-b]; %如果输出参数为一个,则返回一个向量结果
end

代码举例2:

1
2
3
4
5
6
7
8
9
function varargout=sum(varargin)
n=vargin;
if n==1 %输入一个参数
varargout{1}=varargin{1};
end
if n==2 %输入两个参数
arargout{1}=varargin{1}+varargin{2};
varargout{2}=varargin{1}-varargin{2}; %将会有两个输出参数
end

4.一种特殊函数:匿名函数(句柄函数),表示函数无函数名,函数名由@代替。
代码举例1:

1
2
f=@(x) x.^2+3*x+5; %f就相当于函数名称,相当于代表该函数的地址
y=f(3)

代码举例2:

1
2
f=@sin; %相当于将内置函数sin的地址给f
f(2) %相当于调用了sin(2)

后续学习有进展在继续记录······


Matlab编程笔记
https://xiaolelhy.github.io/2024/08/10/Matlab编程笔记/
作者
小乐
发布于
2024年8月10日
更新于
2024年8月12日
许可协议