MATLAB使用方法,不断更新中……

文件操作

保存数据到文件中:

save filename

清除workspace中数据:

clear

清除command window:

clc

从文件中读取数据:

load filename (不用后缀)

查看workspace里的数据:

data(变量名)

保存部分变量:

save 变量名

加载部分变量:

load 变量名

关闭MATLAB时,工作区将被清除。MAT文件可用于保存变量。当您重新打开MATLAB时,这些变量就可以被加载到工作区中。

小数位数显示

默认为4位小数

输入 format long

再输入x

精确到15位小数

输入 format short

恢复默认

创建脚本(一次进行多项指令)

方法是在MATLAB编辑器中创建一个临时脚本

单击“New Live Script"(新建实时脚本)

在灰色代码框中输入命令

还可以切换到文本模式以添加一点说明(LIVE EDITOR中的Text)

通过点击“运行”(Run)按钮一次按顺序运行所有指令

输出会显示在右侧的窗格中

可以点右边的按钮改变输出的布局(右侧/下方)

点结果会标示生成该结果的命令,反之亦然

可将脚本分为多个部分,以便每次只运行一部分代码

要运行单个节,点击"Run Section"(运行节)按钮

可将脚本共享给其他MATLAB用户,或保存为静态PDF/HTML文档

Layout中选择多种布局

Section Break用来在其后断开,对脚本中不同代码分块

数据类型及不同定义方式

MATLAB中变量均以数组(array)形式保存,类型有:

matrix 矩阵

column vector 列向量

row vector 行向量

scalar 标量(实际上是1*1的数组)

定义有多个数的数组可以用中括号括起来

若不同数之间用空格或逗号隔开,则为行向量

若不同数之间用分号隔开,则为列向量

定义矩阵:同一行中的数用逗号或者空格,上一行最后一个数与下一行第一个数之间用分号

这些中括号中的组成数组的数可以为表达式,它会自动算,以结果形式保存

定义包含连续自然数的数组:输入一头一尾,中间为冒号,可以不用中括号

这种方法默认两数间隔为1

自定间隔的方法:第一个数:间隔:最后一个数

如果你知道的是这个数组中数字的数量,而非两数的间隔,用linspace函数:

linspace(first,last,number_of_elements) 注意有逗号 不用中括号

这些方法默认得到行向量,使用转置变为列向量: x = x’

或者在初始化构成的时候就在外面加小括号,右括号后加单引号

矩阵操作

随机数矩阵:rand(x) 表示创建一个x*x的每个数都是随机数的矩阵(范围(0,1))

rand(x,y) x行y列的随机数矩阵

零矩阵:zeros 用法与rand相同

单位矩阵:ones 用法与rand相同

eye:主对角线为1,其余位置为0

size(x)得出矩阵x的行数与列数,eg:

y = size(x),则y为一个1*2矩阵(行向量),第一个数为x的行数,第二个数为x列数,无论x的行数列数是否相同

也可以保存为2个值 [xrow,xcol] = size(x)

可以创建与x大小相同的矩阵,如rand(size(x))

Indexing(索引)

用来提取和修改数组中的值

行/列向量:一个索引值x(idx)

x(3)

x(2:4)

矩阵:x(row,col)

x(1,3)

x(1,:) //整个第一行

x(:,3) //整个第三列

注:1.可以用end代表最后一行或最后一列,如y=A(end,2),(end-1)等表达式也都合法

运算符号

数组+-*/常数

相同大小数组相加

相同大小数组相乘:不能用*,要用.* (a行c列*c行b列 得a行b列)

对整个数组也有效的函数

max/min函数整个数组范围内取最大/最小值

也可以得出2个值,记录索引 [xMax,idx] = max(x)

若只想得出第二个值,第一个值用~代替 [~,ivMax]

(关于记录索引的似乎不能用矩阵)

sqrt 每个元素开方

round 每个元素四舍五入(到个位)

PLOT函数(画图)

两个相同长度的向量可以使用plot函数相互绘制

plot(sample,mass1)说明sample在x轴上绘制,mass1在y轴上绘制

plot画图还可以(x,y,"r-o"),将绘制一条红色(r)虚线(--)并以圆(o)作为标记

(You can learn more about the symbols available in the documentation for Line Specification.)

请注意,每个plot命令都创建了一个单独的plot,要在一条线上绘制另一条线,请在添加另一条线的同时使用“hold on”命令

plot(x1,y1)

hold on

plot(x2,y2)

解除:hold off

若plot中只放了一个向量:自动看作y坐标,x坐标由1~n

plot(y,"LineWidth",5)(参考:documentation for Line Properties.)

可以在行说明符之后向plot函数提供其他输入:plot(x,y,"ro-","LineWidth",5)

TITLE函数(添加标题)

title(字符串) 给图表加题目,注意字符串用双引号表示

title("fsjs")

遇到新函数

通过点击”帮助“ 进入 MATLAB文档 点入function或直接搜索(更高效)

或者直接再COMMAND WINDOW中输入:doc 某函数 ,可直接跳出结果(最最最高效)

Randi函数(随机数)

这里节选一种用法:

X = randi(imax,sz1,...,szN) returns an sz1-by-...-by-szN array where sz1,...,szN indicates the size of each dimension. For example, randi(10,3,4) returns a 3-by-4 array of pseudorandom integers between 1 and 10.

rref函数

求简化阶梯矩阵(row reduced echelon form)

rref(B)

MATLAB中导入文件

选择该文件,并点击“导入数据”(Import Data)

或直接双击它

双击mat文件,其中变量值被导入工作区中

双击jpg文件,她将以像素值数组的形式导入

双击文本文件(txt)或电子表格(csv),会找导入工具(Import Tool),并生成数据预览,要导入的数据以蓝色突出显示,文本文件中的任何缺失数据以橙色突出显示,且在默认情况下被替换为NaN,默认情况下,导入工具以表的形式导入此数据

调整Output Type

关于表(TABLE)

要从表中提取变量,可以使用点表示法(dot notation):

data.VariableName

如果使用表,则可能需要将相关数据保存在一起。可以将计算结果分配给表,而不是创建单独的变量:

data.HeightMeters = data.HeightYards*0.9144

elements.Mass = elements.Density.*elements.Volume1

通过点击表中变量,选择排列方式(通常是由小到大or由大到小)

若想固定这个排序(永久保存),输入一行:

elements = sortrows(elements,\'Mass\')

点表示法用于提取表变量。要提取行,可以使用常规数组索引:

提取table的前三行:top3 = elements(1:3,:)

注意此时top3也是table

逻辑索引

关系运算符(如<,>,<=,>=,==,~=(不等于)):

对两个值进行比较,结果为1(true)或0(false)

矩阵/向量与一个值进行比较,相当于其中每个值都与该值比较,结果的数组大小与原来矩阵/向量大小相同

使用逻辑数组作为数组索引,在这种情况下会提取所有索引为真的数组元素:

v = v1(v1>6)

也可以对两个不同向量进行逻辑索引:

v = sample(v1 > 6)

利用逻辑索引更改变量值:

例如将所有值为99的元素值改为1 :v1(v1<4)=0

也可使用与(&)/或(|)运算:

x = v1(v1<4 & v1>2)

x = v1(v1>6 | v1<2)

判断结构

if

else if

else

end

循环结构

for x = 1:5

end

但若循环中计算较简单,可能不需要使用for循环:

x = 1:5

xSq= x.^2

利用MATLAB处理数组的自然性,可以使用MATLAB数组功能

学到的英语(???)

in that order 原来就是”按顺序“的意思 学到了

the second to last 原来是倒数第二的意思 学到了