MATLAB 入门
基础
注释
%我是注释
帮助
help 函数名或命令名
清理窗口信息的命令
clc
:清除命令窗口内的内容,即只清扫屏幕,但不清除内存中已存在的变量clf
:擦除 Matlab 的当前图形窗口中的图形clear
:清除内存中的指定变量或函数clear all
:清除内存中所有的变量和函数
已预定义的常量
eps
:计算机的最小整数pi
:圆周率 \(pi\)inf
或Inf
:无穷大 \(∞\)NaN
:不定量i
或j
:虚数单位,但可以重新被定义为别的变量(如果没有赋值就直接使用,则默认为是虚数单位)
数组
一维数组
X = A :step :B
当没有指定step时,系统默认 step=1
。
- 生成4个数,起始为1,末尾为2的等差数列
1 | >> linspace(1,2,4) |
x=logspace(a, b, n)
功能:logspace(a, b, n)生成一个(1xn)数组,数据的第一个元素值为a,最后一个元素为b,n是总采样点数。需要注意的是,此时产生的数组元素在10^a 到10^b上并不是均匀分布的,而形成一个对数曲线。
二维数组
1 | >> [1 2 3; 4 5 6; 7 8 9] |
三维数组
xxx
多维数组操作
1 | >> a = [1 2 3]; |
1 | >> A = [1 2; 3 4]; |
cat()
用来联结数组
C = cat(dim, A, B)
按dim来联结A和B两个数组。
C = cat(dim, A1, A2, A3, ...)
按dim联结所有输入的数组。
a=cat(3,A,B)
左括号后的3表示构造出的矩阵维数;在新的矩阵中第1、2维就是A和B这两个矩阵的行数和列数,第3维是A和B这两个矩阵的矩阵个数,即为2
cat(2, A, B)
相当于 [A, B];
at(1, A, B)
相当于 [A; B].
size()
按照行-列-页的顺序,返回数组A每一维上的大小
1 | >> a |
ndims()
1 | a |
返回数组A具有的维度值
whos
返回当前工作区的各个变量的详细信息
1 | >> whos |
线性代数
常量矩阵命令
zeros(m,n)
:产生一个 \(m\times n\) 零矩阵zeros(n)
:产生一个 \(n\) 阶零方阵ones(m,n)
:产生一个所有元素为 \(1\) 的 \(m\times n\) 矩阵ones(n)
:产生一个所有元素为 \(1\) 的 \(n\) 阶方阵eye(n)
:产生一个 \(n\) 阶单位阵
运算符
Matlab 最擅长于线性代数中关于矩阵的各种运算,常用的运算符有:
+
:两矩阵和的运算-
:两矩阵减的运算*
:两矩阵乘积的运算.*
:两矩阵各相应位置元素乘积的运算./
:两矩阵各相应位置元素相除的运算A'
:矩阵 A 的转置inv(A)
:矩阵 A 的逆阵eig(A)
:矩阵 A 的特征值[V,D]=eig(A)
:给出由矩阵 A 的特征向量组成的矩阵 V(以列向量排列)和由对应的特征值组成的对角阵 D(特征值为对角线元素)sum(A,1)
:对矩阵 A 的每列元素求和,给出求和值的行向量sum(A,2)
:对矩阵 A 的每行元素求和,给出求和值的列向量sum(X)
:对向量 X=(x1,x2,…….,xn)的分量求和cumsum(X)
:给出向量 X 的累加和length(X)
:给出向量 X 的维数,即其分量的个数norm(X)
:给出向量 X 的范数,即向量的长度
字符串
字符串连接
方法一:[str1,str2]
1 | str1 = 'save '; |
结构
if
1 | 格式1: |
switch
1 | switch 表达式 |
for
表达式1 的值是循环变量的初值,表达式2 的值是循环变量的增量,表达式3 的值为循环变量的终值。如果增量为1 时,表达式2 可以省略不写
1 | for 循环变量=表达式1:表达式2:表达式3 |
while
1 | while 条件 |
画图
二维
plot(x, y)
例:在区间 [0,2π] 内绘制正弦曲线 y=sinx 的语句
1 | x=0:pi/100:2*pi; |
指定线型与颜色
plot(x,y1,'cs1',x,y2,'cs2',....)
它以公共向量 x 为 X 轴,分别以 y1,y2,… 为 Y 轴在同一幅图内绘制出多条曲线,同时可以指定它们的不同颜色与不同线性。
每条曲线的颜色和线型用字符串 ‘cs’ 来指定,其中 c 表示颜色,而 s 表示线型,线型可以是线或者标记,线和标记可同时使用。它们的位置次序可随意,如缺省的话,则默认颜色为蓝色、线型为实型。它们的符号如下所示。
函数
添加图例
使用 hold on
1 | >> plot(x,y); |
正态分布
1 | Y = normpdf(X,mu,sigma) %pdf mu 均值 sigma 方差 |
泊松分布
1 | R = poissrnd(LAMBDA,m,n) % 产生以Lambda为平均值的m行n列Poisson 随机数 |
文件操作
读取文件
指定文件格式
1 | %%% read images |
写入文件
保存单行、单列数据
1 | fid=fopen(['d:\','A.txt'],'w');%写入文件路径 |
保存一个矩阵
1 | fid=fopen(['d:\','B.txt'],'w');%写入文件路径 |
手动保存到指定位置,指定文件名
1 | [FileName,PathName]=uiputfile({'*.txt','Txt Files(*.txt)';'*.xls','Excel(*.xls)';'*.*','All Files(*.*)'},'choose a File'); %% pathname获取保存数据路径, filename获取保存数据名称 |