目录
一、基础命令
- 清空环境变量和命令
clear all
清除Workspace中的所有变量clc
清除Command Window中的所有命令
二、数据类型
- 数字
- 字符和字符串
- 定义:
s='a'
,str='zifuchuan'
abs(s)
,取ASCLL码char(65)
,取字符length(str)
,计算字符串长度
- 矩阵
- 定义:
A=[1 2 3;4 5 6;7 8 9]
- 转置:
B=A'
,行列互换 - 按列输出矩阵:
C=A(:)
- 求逆:
D=inv(A)
,方阵才可求逆 - 生成0矩阵:
E=zeros(10,5,3)
,十行五列三维0矩阵 - rand生成均匀分布的伪随机数,分布在(0,1)之间:
E(:,:,1)=rand(10,5)
十行五列随机数 - randn生成标准正态分布的伪随机数,均值为0,方差为1:
E(:,:,2)=rand(10,5)
十行五列随机数 - randi生成均匀分布的伪随机数:
E(:,:,3)=rand(5,10,5)
十行五列随机数,最高值为5
- 元胞数组
- 定义:
A=cell(1,6)
,注意:matlab不同于c,matlab从1开始 - 赋值:
A{2}=eye(3)
(eye是生成nn、对角线是1的单位矩阵),A{5}=magic(5)
(magic是生成nn,主、副对角线、行、列相加都相等的幻方)
- 结构体
- 定义:
books=struct('name',{{'wangwu','liming'}},'price',[30,40])
- 输出:
books.name
输出属性,books.name(1)
输出cell,books.name{1}
输出字符串
三、矩阵操作
- 矩阵的定义与巧构
B=1:2:9
从1到9步长2的矩阵C=repmat(B,3,2)
把B矩阵重复三行二列所得矩阵D=ones(2,4)
生成2行4列,数值均为1的矩阵
- 矩阵的四则运算
C=A+B
,一一相加,相减同理E=A*B
,行数等于列数才可以F=A.*B
,对应项相乘G=A/B
,相当于A乘以B的逆,如果不是方阵用pinv()求伪逆即可H=A./B
,对应项相除
- 矩阵的下标
B=A(2,3)
,取第二行第三列元素C=A(3,:)
,取第三行(列同理)[m,n]=find(A>20)
,找出A中大于20的索引值
四、逻辑和流程控制
- for循环结构
for 循环变量 = 初值:步长:终值(步长可以省略)
执行语句;
end
- while循环结构
while 条件表达式
执行语句;
end
- if分支结构
if 条件表达式
执行语句;
elseif 条件表达式
执行语句;
else
执行语句;
end
- switch分支结构
switch 表达式(数值或字符串)
case 字符或字符串1
语句1;
case 字符或字符串2
语句2;
otherwise
语句n;
end
五、二维平面绘图
- sin函数例子
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: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');
set(get(AX(2),'Ylabel'),'String','Fast');
xlabel('Time');
title('Rates');
set(H1,'LineStyle','--');
set(H2,'LineStyle',':');
六、三维立体绘图
- 简单例子
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t);
xlabel('sin(t)');
ylabel('cos(t)');
zlabel('t');
grid on;
axis square;