MATLAB新手小白入门——一天学会MATLAB基础操作,必看!
一、变量命名
1、清空环境变量及命令
clear all: 清空Workspace中的所有变量
clc: 清除Command Window中的所有命令
2、变量命令规则
1、变量命名区分大小写
A = 22
a = 33
//这两个是不一样的变量
2、变量命名不超过63位
ABCDEFGHIGKLMNOPQRSTUVWXYZ123456ABCDEFGHIGKLMNOPQRSTUVWXYZ123456 = 666
3、变量名以字母开头,可以由字母、数字和下划线组成,但是不能使用标点
3A =3 √
.a = 5 ×
4、变量名应该简洁明了,通过变量名可以直观看出所表示的含义
r = rand(3, 5)
rows = size(A, 1)
cols = size(B, 2)
二、MATLAB数据类型
1、数字
1 + 1
1000 - 7
2333 * 2233
2 / 0
//相信这里都懂的
2、字符与字符串
s = ‘a’
//定义字符
abs(s)
//字符串的定义
char(65)
num2str(65)
str = ‘I love matlab’
//字符串的赋值
3、矩阵
A = [1, 2, 3; 4, 5, 6; 7, 8, 9]
//矩阵的定义
B = A’
//B是A的·逆矩阵,“ ‘ ”是单引号
C = A( : )
//C是把矩阵竖着A排成一列,竖着排
D = inv(A)
//inv:求出来括号内的矩阵的逆
A * D
//矩阵的相乘
E = zeros(10, 5, 3)
//zeros(a, b, c):用0来初始化一个10行5列的三维矩阵
rand(m, n)
//随机生成一个m行n列的随机分布的伪随机数
randn(m, n)
//生成标准正态分布的伪随机数(均值为0,方差为1)
randi(iMax)
randi(iMax, m, n)
randi([iMin, iMax], m, n)
//生成在iMin到iMax中间的m*n型随机矩阵(如果没有iMin,默认为0)
4、元胞数组
A = cell(1, 6)
//cell:创建一个和C语言的数组类似的结构
A{2} = eye(3)
//eye:创建一个平面,平面大小由括号内数值决定
A{5}= magic(5)
//magic:生成一个幻方,幻方阶数由括号内数值决定
B = A{5}
//把A元胞数组的值赋给B
5、结构体
books = struct(‘name’, {{‘Machine Learning’, ‘Data Mining’}}, ‘price’, [30, 40])
//struct:创建一个结构体
books.name
//获取结构体内部的数据
books.name(1)
//取出其中的一个cell
books.name{1}
//取出cell中的内容(字符串)
三、MATLAB矩阵操作
1、矩阵的定义与构造
A = [1 2 3 5 8 5 4 6]
//定义一个一维矩阵
B = 1:2:9
//创建一个一维矩阵,从1到9,中间间隔2
C = repmat(B, 3, 1)
repmat:让B行重竖着3次,横着重复1次
D = ones(2, 4)
//创建一个二行四列数值全为1的矩阵
2、矩阵的四则运算
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’
//A乘以B的转置
F = A .* B
//对应项相乘
G = A / B
H = A ./ B
3、矩阵的下标
A = magic(5)
B = A(2, 3)
//取出A的第2行第3列作为B
C = A(3, : )
//取出整个第3行作为C
D = A(:, 4)
//取出整个第4列作为D
[m, n] = find(A > 20)
//分别输出m(所在行)和n(所在列),find()找到在A中大于20的数,并记录
四、MATLAB逻辑与流程控制
1、循环结构
1)for…end循环结构
for 循环变量 = 初值 : 步长 : 终值
执行语句1
......
执行语句n
end
/*如果要省略步长(默认值为1)
则结构为for 循环变量 = 初值 : 终值
for循环可以嵌套*/
2)while循环结构
while 条件表达式
执行语句1
......
执行语句n
end
2、分支结构
1)if…end分支结构
if 条件表达式
...
语句体
...
end
2)if…else…end分支结构
if 表达式
语句体1
else
语句体2
end
3)switch…case…end分支结构
switch 表达式(数值或者字符串)
case数值或者字符串1
语句体1;
case数值或者字符串2
语句体2;
...
otherwise
语句体n;
end
五、MATLAB绘图基本操作
!!!关于绘图的一些小内容放在最后!!!
1、二维平面绘图
x = 0 : 0.01 : 2*pi;
//建立X轴,坐标和坐标分量
y = sin(x);
//设置y关于x的函数,也就是要画的图
figure
//建立一个帷幕
plot(x, y)
//绘出关于x和y的图像
title('y = sin(x)')
//标出整个图像的标题
xlabel('x')
//在X轴标注
ylabel('sin(x)')
//在Y轴标注
xlim[0 2*pi]
//限制表现出来的x轴长度
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');
//返回三个参数,AX是坐标轴的句柄,AX(1) 是左边的纵轴, AX(2) 是右边的纵轴;H1和 H2保存的是图形句柄;和set相关;
set(get(AX(1), 'Ylabel'), 'String', 'Slow Decay')
set(get(AX(2), 'Ylabel'), 'String', 'Fast Decay')
xlabel('Time(\musec)')
title('Multiple Decay Rates')
set(H1, 'LineStyle', '-')
set(H2, 'LineStyle', ':')
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
//使坐标空间变成正方形
hold on
//使程序暂不执行
hold off
//不保存当前内容