一、认识Matlab
Matlab安装请参见博客 安装步骤
1.界面
2.清空环境变量及命令
(1)clear all :清除Workspace中的所有变量
(2)clc:清除Command Window中的所有命令
二、Matlab基础
1.变量命名规则
(1)变量名区分大小写;
(2)变量名长度不超过63位;
(3)变量名以字母开头,可以由字母、数字和下划线组成,但不能使用标点;
(4)变量名应简介明了,通过变量名可以直观看出变量所表示的物理意义;
2.注释
%% 注释一行,会出现横线
% 注释不出现横线
3.Matlab数据类型
(1)数字
(2)字符与字符串
(3)矩阵
%矩阵
A = [1 2 3;4 5 6 ;7 8 9]
B = A'
C = A(:) %将矩阵竖着取出来
D = inv(A) %求逆,矩阵必须为方阵
E = zeros(10,5,3) %三维度
%下面输出 E(:,:,1)表示第一维
rand、randi、randn的区别?
1.rand生成均匀分布的伪随机数。分布在(0~1)之间
主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数;rand(m,n,‘double’)生成指定精度的均匀分布的伪随机数,参数还可以是‘single’;rand(RandStream,m,n)利用指定的RandStream生成伪随机数
2.randn生成标准正态分布的伪随机数(均值为0,方差为1)
主要语法:同上
3.randi生成均为分布的伪随机整数
主要语法:randi(iMax)在区间(0,iMax)生成均为分布的伪随机整数;randi(iMax,m,n)在区间(0,iMax)生成m X n型随机矩阵;randi([iMin,iMax],m,n)在区间(iMin,iMax)生成m X n型随机矩阵
E(:,:,1) = rand(10,5)
E(:,:,2) = randi(5, 10,5)
E(:,:,3) = randn(10,5)
(4)元胞数组
元胞数组是Matlab中特有的一种数据类型,是数组的一种,其内部元素可以是属于不同的数据类型,概念理解上,可以认为它和C语言里面的结构体、C++里面的对象很类似。它特有的存取数据方法决定了它的特点,它有给人一种查询信息的感觉,可以逐渐追踪一直到所有的变量全部翻译成基本的数据信息。
A = cell(1, 6)
A{2} = eye(3)
magic字面意思是魔方,魔术的意思。在matlab中用来生成n阶幻方。比如三阶幻方就是1-9九个数字,组成一个3*3的矩阵,使得该矩阵无论横、竖还是斜三个方向上的三个数的总和是相同的。
A{5} = magic(5)
B = A{5}
(5)结构体
books = struct('name',{{'Machine Learing','Data Mining'}},'price',[30 40])
books.name
books.name(1) % 元胞数组
books.name{1} %字符串
4.矩阵定义与构造
A = [1 2 3 5 8 8 4 6]
B = 1:2:9
C = repmat(B,3,1)
D = ones(2,4)
5.矩阵的四则运算
A = [1 2 3 4;5 6 7 8]
B = [1 1 2 2;2 2 1 1]
C = A + B
D = A - B
E = A * B'
F = A .* B %对应项相乘
G = A / B %相当于A乘B的逆
H = A ./ B %对应项相除
6.矩阵的下标
A = magic(5)
B = A(2,3)
C = A(3,:) %第三行
D = A(:,4) %第四列
[m,n] = find(A > 20) %找大于20的序号值/矩阵,取出索引值
三、Matlab绘图
1.二维平面绘图1
x = 0:0.01:2*pi;
y = sin(x);
figure %建立一个幕布
plot(x,y)
title('y = sin(x)')
xlabel('x')
ylabel('sin(x)')
xlim([0 2*pi]) %x轴的取值范围
2.二维平面绘图2
x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x)
y2 = 0.8*exp(-0.5*x).*sin(10*x)
figure
[AX,H1,H2] = plotyy(x,y1,x,y2,'plot');%共用一个x轴
set(get(AX(1),'Ylabel'),'String','Slow Decay')
set(get(AX(2),'Ylabel'),'String','Fast Decay')
xlabel('Time(\musec)')
title('Multiple Deacy Rates')
set(H1,'LineStyle','--')
set(H2,'LineStyle',':')
3.三维立体绘图
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t) %三维绘图用plot3
xlabel('sin(t)')
ylabel('cos(t)')
zlabel('t')
grid on %添加网格线
axis square
%双峰模型
[x,y,z] = peaks(30);
mesh(x,y,z)
grid
四、Matlab图像的导出