一、清空环境变量及命令
clear all %清除workspace中的所有变量
clc %清除Command Window中的所有命令
% 和%%都表示计算机不会运行这行程序
二、变量命令规则
1.变量命名区分大小写
2.变量命名长度不超过63位
3.变量命名以字母开头,由字母,数字,下划线组成。
4.应该简洁明了
三、Matlab数据类型
1.数字
1 + 2
5 - 3
2.字符与字符串
s = 'a'
abs(s) //执行的是得到s的asc编码97,因为s='a'
char(97) 输出的是'a'
num2str[65]
str = 'let's fking go'
length(str) //str的长度
3.矩阵
A =[1 2 3; 4 5 2 ; 3 2 7] //结果 是3 × 3矩阵
B = A' //B等于A的转置
C = A(:) //将A矩阵从左到右竖着写
D = inv(A) //求A的逆矩阵
A * D //A和D的乘积
E = zeros(10,5,3) //创建了一个三维的10行5列的矩阵,所有位置都是零
E(:,:,1) =rand(10,5)
//rand():生成均匀分布的伪随机数,分布在(0~1)之间
rand(m,n):生成m行n列的均匀分布的伪随机数
rand(m,n,'double'):生成制定精度均匀的伪随机数,参数还可以是'single'
randn():生成标准正态分布的伪随机数(均值为0,方差为1)
randi():生成均匀分布的为随机整数
randi(iMax):在开区间(0,iMax)生成均匀分布的为随机整数
randi(iMax,m,n):在开区间(0,iMax)生成mXn型随机矩阵
r = randi([iMin,iMax],m,n)在开区间(iMin,iMax)生成mXn型随机矩阵
4.元胞数组
MATLAB索引从1开始,与其他编程语言从零开始不同。
A =cell(1,6) //定义为1行6列的元胞数组 结果为:[] [] [] [] [] []
A{2} = eye(3) //
A{3} = magic(5) //magic(5) 5X5阶
magic():生成n阶幻方 幻方:横竖斜上数相加都相等
5.结构体
books = struct('name',{{'Machine Learning','Data Mining'}},'price',[30 40])
//结果
books =
包含以下字段的 struct:
name: {'Machine Learning' 'Data Mining'}
price: [30 40]
books.name //属性
books.name(1) //第一个细胞数组 结果:1X1 cell
books.name{1} //细胞数组中的字符串 结果:'Machine Learning'
四、MATLAB的矩阵操作
1.矩阵的定义与构造
A=[1 2 3 5 8 5 4 6] //构建一个1X8的矩阵A
B = 1:2:9 //构建一个矩阵B,要求最大值是1,最小值是9,步长是2;步长不能缺少
C = repmat(B,m,n) //把B这个矩阵横着重复m次,竖着重复n次;
D = ones(2,4) //生成一个2行4列的矩阵D,所有位置都为1
2.矩阵的四则运算
A = [1 2 3 4 ; 5 6 7 8] //构建一个2X4的矩阵A
B = [1 1 2 2 ; 2 2 1 1] //构建B
C = A + B //矩阵C=矩阵A和B对应位置相加
D = A - B //矩阵相减
E = A * B' //矩阵E=矩阵A X B的转置
F = A .* B //矩阵F=A与B对应位置相乘
G = A / B //矩阵G=A X B的逆
H = A ./ B //对应项相除
3.矩阵的下标
A = magic(5) //生成幻方矩阵A;5行5列
B = A(2,3) //B等于A的第2行,第3列
C = A(3,:) //取A的第三行
D = A(:,4) //取A的第四列
[m,n]=find(A > 20) //找大于20的序号值/矩阵
五、MATLAB流程控制
1.for循环
for 循环变量 = 初值 : 步长 : 终值
执行语句1
...
执行语句n
end
//步长的默认值为1,可以省略
2.while循环
while 条件表达式
执行语句1
...
执行语句2
end
3.if结构
if 条件表达式
...
语句体
...
end
4.if..else..end结构
if 条件表达式
语句1
else
语句2
end
5.switch..case..end结构
switch 表达式(数值或字符串)
case 数值或字符串1
语句体1;
case 数值或字符串2
语句体2;
...
otherwise
语句体n;
end
//otherwise可以省略
六、MATLAB基本绘图操作
1.二维平面绘图
x = 0:0.01:2*pi; //x的取值为从0开始,2*pi结束,步长为0.01
y = sin(x); //y取值为sinx
figure //建立一个幕布
plot(x,y) //绘制一个二维平面的图
title('y=sin(x)') //为此图取一个标题
xlabel('x') //为x轴取标题
ylabel('sin(x)') //为y轴取标题
xlim([0 2*pi]) //目前所有x的值最小为0,最大为2*pi
1.1 颜色选择参数(颜色 字符)
红 r 绿 g 蓝 b 黄 y 粉红 m 青 c 白 w 黑 k
1.2 线型选择参数(线型 符号 示例)
实线 - ————————
虚线 -- -----------------------
冒号线 : ---- ---- ---- ----
点画线 -. —— - —— - —— -
1.3 数据标记点选择参数(符号 点类型)
· 点 + 十字号 o 圆圈 * 星号 x 叉号 s 正方形 d 菱形
^ 上三角 v 下三角 < 左三角 > 右三角 p 五角星 h 六角星
x = 0:0.01:20; //x取值范围
y1 = 200*exp(-0.05*x).*sin(x); //y1取值规则
y2 = 0.8*exp(-0.5*x).*sin(10*x); //y2取值规则
figure //建立一个幕布
[AX,H1,H2] = plotyy(x,y1,x,y2,'plot') //plotyy():共用一个x坐标系,在y上有不同的取值
set(get(AX(1),'Ylabel'),'String','Slow Decay') //为y轴左边设置一个标题
set(get(AX(2),'Ylabel'),'String','Fast Decay') //为y轴右边设置一个标题
xlabel('Time (\musec)') //为x轴设置标题
title('Multiple Decay Rates') //为这张图设置标题
set(H1,'LineStyle','--') //为H1设置风格虚线
set(H2,'LineStyle',':') //为H2设置风格为冒号线
2.三维立体绘图
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
xlabel('sin(t)')
ylabel('cos(t)')
zlabel('t')
grid on //在图片中加一定的网格线
axis square //将各种方向都变成正方向,绘图更好看
3.图形的保存与导出(4种方法)
(1)Edit ->Copy Figure //编辑->复制图窗->打开一个word文件->按ctrl v粘贴
(2)Toolbar ->Save //文件->另存为->选好位置,调好所需格式和名字
(3)print('-depsc','-tiff','-r300','picture1') //命令
(4)File ->Export Setup
ps:1.双栏排版图时:编辑->导出设置->更改宽度值->应用于图窗->导出
[x,y,z] = peaks(30)
mesh(x,y,z) //创建一个三维网络图
grid //绘制了一个双峰函数