界面认识
- 顶栏——时间与版本(a表示上半年的版本,b表示下半年的版本)
- 预设——设置
- 左侧为当前文件夹,可以更改,一般使用项目所在文件夹
命令行窗口
代码的实现以及公式计算
(clc为清空的指令)
编辑器的打开
在“新建”中点击“脚本”,即会创建新的编辑器窗口
如果一个脚本被编辑后没有保存,文件名会出现“*”符号
保存的快捷键——“Ctrl” + “s”
变量命名
变量的要求
数据类型
数值类型
整数类型
取整函数
注意:整数类型只能与整数或者双精度相乘
利用代码“whos”可以查询已有变量以及类型
复数类型
复数的创建可以直接根据复数的定义来创建
Inf表示正无穷,-Inf表示负无穷,NaN表示非数值量(0/0或者Inf/Inf)
- 数字
有+-*/运算符号 - 字符与字符串
s = ‘a’
abs(s)【ASCLL码】
char(97)【定义字符】
num2str(65)【就是数字65】
str = ‘I love you’
length(str)【计算字符串长度,空格也算】 - 矩阵
A = [1 2 3;4 5 2;3 2 7]【创建矩阵】
B = A‘【A的转置】
C = A(:)【将A矩阵拉长了,从上到下显示数字】
D = inv(A)【矩阵求逆,必须是方阵】
E = zeros(10, 5, 3)【十行五列三维的零矩阵】
rand为伪随机数,分布在零到一之间
rand(m,n)生成m行n列的均匀分布的伪随机数
rand(m,n,'double')生成指定精度的均匀分布的伪随机数,参数也可以是'single'
randn生产标准正态分布的伪随机数(均值为0,方差为1)
randn的语法和rand一样
randi生产均匀分布的伪随机整数
randi(iMax)在半开半闭(0,iMax] 生成均匀分布的伪随机整数
randi(iMax,m,n)在半开半闭区间(0.iMax]间生成mxn的矩阵
randi([iMin,iMax,m,n]在闭区间[iMin,iMax]间生成mxn的矩阵) - 元胞数组
是数组的一种,其内部元素可以是不同的数据类型,相当于c语言中的结构体
它的class函数的输出就是cell(细胞)
可以看成啥都能装的大盒子~~~
A = cell(1,6)【先生成一个一行六列的小盒子组】
A{2} = eye(3)【生成3x3的对角线为1的矩阵放在第二个盒子里,注意,matlab的索引是从1开始】
A{5} = magic(5)【magic生成n阶幻方,横着竖着斜着的元素相加相等】
B = A{5}【把A中第五个盒子拿出来给B】 - 结构体
books就相对于python中的字典
struct(‘name’,{{‘Machine Learning’,‘Date Mining’}},‘price’,[30,40])
name和price就是属性,name中有{‘Machine Learning’,‘Date Mining’},prince有[30,40]
books.name---输出‘Machine Learning’,‘Date Mining’
books.name(1)输出‘Machine Learning’(cell)
books.name{1}输出Machine Learning(字符串)
清空环境变量及命令
clear all —— 清除Workspace中所有变量(右侧工作区)
clc —— 清楚命令窗口所有命令
变量命令规则
- 变量名区分大小写
- 变量名长度不超过63位
- 变量名以字母开头,可以由字母,数字和下划线组成,但不能使用其他标点
- 注释用%%这个来,一个%也是注释
MATLAB矩阵操作
矩阵的定义与构造
A = [1 2 3 5 8 5 4 6]多行加分号
B = 1:2:9(选择1到9的数值,每次跳转2,中间称为步长,最小值一定取,最大可以不取,不可以缺少步长)
C = repmat(B,3,1)(将B重复三行,一行重复一次)
D = ones(2,4)(生成两行四列元素全是1的矩阵)
矩阵的四则运算
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 (A与B对应项相乘)
G = A / B (相对于A乘以B的逆矩阵)
H = A ./ B(A和B对应项相除)
矩阵的下标
A = magic(5)
B = A(2,3)(取A矩阵的第二行第三列的值)
C = A(3,:)(取A第三行全部,:表示全部)
[m,n] = find(A>20)(找大于20 的序号值/矩阵,最后会给出m分别多少,n分别是多少,对应mn就是序号值)
程序的结构
关系操作符
逻辑与流程控制
- if ... else ... end
选择结构 - for ... end
for 循环变量 = 初值:步长:中值(从初到末,中间相隔步长的循环)
sum = 0;
for n = 1:5;(步长一可以省略)
sum = sum + n^2;
end - while ... end
while 条件表达式
执行语句...
end
s = 0;
n = 0;
while n <= 10(不可以加分号!!!)
s = s + n;
n = n + 1;
end - switch ... case ... end
switch 表达式
case 数值
语句一;
case 数值
语句二;
... ...
绘图二维
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 = 0:01:20;
y1 = 200*exp(-0.05x).*sin(x);
绘图颜色表:
单引号加上以下颜色代码之一
红色 r
粉红 m
绿色 g
青色 c
蓝色 b
白色 w
蓝色 b
白色 w
黄色 y
黑色 k
还可以改线型以及数据标记点选项参数,都用单引号引用,具体类型可以谷歌上百度一下
其他
x = 0:0.01:20;【从零开始一直到20,0.01为步长】
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');【公用一个坐标系在y上由共同取值】
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',':')
绘图三维
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)【绘制三维】
xlabel('sin(t)')【x轴标签】
ylabel('t')【y轴标签】
hold on【同一幕布中绘制】
grid on【绘制,限制作用,加上网格线】
axis squre【绘制坐标系为正方形】
Comments NOTHING