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 原来是倒数第二的意思 学到了

原文地址:https://www.cnblogs.com/wifimonster/p/13766525.html