file:///C:/Users/Administrator/AppData/Local/Temp/Rar$EXa916.10783/Class_1_Code/html/Example_1.html#29
file:///C:/Users/Administrator/AppData/Local/Temp/Rar$EXa9320.46012/Class_1_Code/html/Example_1.html
在matlab中用(%%和一个空格)来注释一行;
I. 清空环境变量及命令
clear all % 清除Workspace中的所有变量 clc % 清除Command Window中的所有命令
II. 变量命令规则
1. 变量名区分大小写
2. 变量名长度不超过63位
3. 变量名以字母开头,可以由字母、数字和下划线组成,但不能使用标点
4. 变量名应简洁明了,通过变量名可以直观看出变量所表示的物理意义
III. MATLAB数据类型
1.数字
2. 字符与字符串
【注】1> abs(s)——执行ASIIC码(所在位置)
2> char(97)——字符串
3> num2str()——把数值转为字符串
4> length()——计算字符串长度 %如laba=(‘abc’);则L=length(laba)输出3
3.矩阵
A = [1 2 3; 4 5 2; 3 2 7] B = A' %% A'代表A转置 C = A(:) %% 把矩阵竖着拉长(多列排成一列) D = inv(A) %% 求逆矩阵 A * D %% A乘D矩阵 E = zeros(10,5,3) %% 10行5列3维的零矩阵 E(:,:,1) = rand(10,5) E(:,:,2) = randi(5, 10,5) %% randi(iMax,m,n),第二层生成0-5的伪随机整数 (10行5列) r = randi([iMin,iMax],m,n)在,生成的是min到max的 mXn的伪随机整数 E(:,:,3) = randn(10,5) %% 正态分布的伪随机数(均值伪0,方差伪1)
4. 元胞数组
A = cell(1, 6) %生成1行6列的元胞数组 A{2} = eye(3) %元胞数组的第二个“盒子”里放入3阶单位阵 A{5} = magic(5) %5阶幻方(横着,竖着,斜着相加都相等) B = A{5} %把元胞数组的第五个“盒子”给B
5. 结构体
books = struct('name',{{'Machine Learning','Data Mining'}},'price',[30 40]) %生成一个结构体,其中name: {'Machine Learning' 'Data mining'}且price: [30 40] books.name %读出结构体中的name的内容 books.name(1) %读出结构体中的name的第一个内容(此时是元胞数组), {'Machine Learning'} books.name{1} %读出结构体中的name的第一个内容(此时是字符串), 'Machine Learning'
IV. MATLAB矩阵操作(重点)
1. 矩阵的定义与构造
A = [1 2 3 5 8 5 4 6] B = 1:2:9 %% 输出1到9,步长为2(步长为1时可省略) C = repmat(B, 3, 1) %% 横着复制B3次,竖着复制1次 D = ones(2, 4) %%生成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' %% E=A乘B转置 F = A .* B %% 矩阵对应点相乘 G = A / B %% G相当于A乘B逆,(invB),也相当于 G * B = A H = A ./ B %% 矩阵对应点相除
3. 矩阵的下标
A = magic(5) %% 随机生成一个5阶幻方 B = A(2,3) %% B=A的第二行第3列的数 C = A(3,:) %% 冒号代表全部 D = A(:,4) [m, n] = find(A > 20) %%找出矩阵中大于20的元素所在位置(以m和n来呈现)
V. MATLAB逻辑与流程控制
1.if循环
1.1 if分支结构(if为真执行if内的内容,为假则跳过执行下面语句)
1.2if...else...end结构
4.switch...case...end(用得少)
VI. MATLAB脚本与函数文件
VII. MATLAB基本绘图操作
1. 二维平面绘图
x = 0:0.01:2*pi; y = sin(x); figure plot(x, y) %建立2维图像 title('y = sin(x)') xlabel('x') %给x轴建立标签 ylabel('sin(x)') xlim([0 2*pi]) %限制x只显示0-2*pi 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'); %在同一个图上显示两个图像 set(get(AX(1),'Ylabel'),'String','Slow Decay') %给图像1设标签 set(get(AX(2),'Ylabel'),'String','Fast Decay') %给图像2设标签 xlabel('Time (\musec)') title('Multiple Decay Rates') set(H1,'LineStyle','--') %改变图像1的线段样式 set(H2,'LineStyle',':') %改变图像2的线段样式
2. 三维立体绘图
t = 0:pi/50:10*pi; plot3(sin(t),cos(t),t) %建立3维图像 xlabel('sin(t)') ylabel('cos(t)') zlabel('t') grid on %背景构造小方格 axis square %显示为正立体图形