变量命名规则
- 区分大小写
- 长度小于64位
- 以字母开头, 可以由字母数字下划线组成
清空环境变量及命令
clear all % 清空Workspace中的所有变量
clc % 清空控制台
注释
%%注释
%%
%注释
数据类型
-
数字
-
字符和字符串
-
单引号加内容
-
laoba = 'chihanbao'
-
-
abs函数 -> 获取ASCII码
-
abs(laoba)
-
-
char函数 -> 获取ASCII对应的字符
-
char(97)
-
-
num2str函数 -> 将数字转为字符数组
-
num2str(123)
-
-
length函数 -> 获取字符串长度
-
length(str)
-
-
-
矩阵
-
A = [1 2 3; 4 5 6; 7 8 9] B = [1,2,3; 4,5,6; 7,8,9]
- 用逗号分隔一行上的元素, 用分号换行
-
矩阵转置
-
B = A'
-
-
列矩阵
-
C = A(:)
-
-
逆矩阵
-
D = inv(A)
-
-
矩阵乘法
-
A * D
-
-
zeros函数
-
zeros(行[,列,维])
-
创建x行,y列,n维的矩阵, 值均为0
-
A = zeros(10,5,3)
-
-
rand函数
-
rand(行[,列])
-
创建x行,y列,n维的矩阵, 值随机
-
A = rand(10,5)
-
randi函数 - 均匀分布的伪随机整数
-
randn函数 - 标准正态分布的伪随机数(均值0,方差1)
-
-
-
元胞数组
-
cell(行, 列) % 定义元胞数组
-
索引{n}从1开始 (其他语言是从0开始)
-
每一个成员都可以放不同类型的值
-
使用示例 :
-
A = cell(1,5); A{1} = 1; A{2} = 'Hello'; A{3} = zeros(3,3,3); A{4} = eye(3); A{5} = magic(5);
-
-
-
结构体
-
s = struct(field1,value1,...,fieldN,valueN)
-
使用示例:
-
person = struct('name', '张三', 'age', 18)
-
-
调用:
-
结构体名.成员名
-
person.name % ans="张三"
-
-
空结构体:
-
s = struct('a', {}, 'b', {})
-
-
矩阵操作
矩阵的定义与构造
B = 1:2:9 % 起始为1, 终止为9, 步长为2的一行矩阵
% 结果: B -> 1 3 5 7 9
C = repmat(B, 3, 2) % 重复B, 竖着重复3次, 横着重复2次(分块矩阵, B为矩阵块, C为3行两列矩阵)
% 结果: C ->
% 1 3 5 7 9 1 3 5 7 9
% 1 3 5 7 9 1 3 5 7 9
% 1 3 5 7 9 1 3 5 7 9
D = ones(2,4) % 类似zeros, 值均为1
% 结果: D ->
% 1 1 1 1
% 1 1 1 1
矩阵的四则运算
A + B
A - B
A * B'
A .* B % 对应项相乘
A / B % A乘以B的逆矩阵
A ./ B % 对应项相除
矩阵的下标
A(2,3) % 二行三列的位置
A(3,:) % 第三行的所有列
A(:,3) % 第三列的所有行
[m,n] = find(A > 20) % 寻找A矩阵中大于20的元素, 将行和列存入m和n
程序结构
for循环
for 循环变量 = 初值:[步长:]终值
语句
end
例子:
% 求1-5的平方和
sum = 0;
for i = 1:5
sum = sum + i^2;
end
% 求1!-5!和
sum = 0;
for i = 1:5
p = 1;
for j = 1:i
p = p * j;
end
sum = sum + p;
end
while循环
while 条件
语句
end
例子:
% 计算1-10的和
sum = 0;
n = 1;
while n <= 10
sum = sum + n;
n = n + 1;
end
if elseif else end
if 条件
语句
else if 条件
语句
else
语句
end
例子:
% 计算1-100的偶数和
sum = 0;
for i = 1:100
if mod(i,2) == 0
sum = sum + i;
end
end
switch case end
switch 表达式
case 值1
语句1;
case 值2
语句2;
...
otherwise
语句n;
end
例子:
m = 3;
switch m
case 1
disp('一月');
case 2
disp('二月');
case 3
disp('三月');
otherwise
disp('错误');
end
二维平面绘图
x = 0:0.01:2*pi;
y = sin(x);
figure; % 建立一个幕布
plot(x, y); % 绘制图片
title('正弦函数图形 [0,2pi]'); % 标题
xlabel('x'); % x轴标签
ylabel('sin(x)'); % y轴标签
xlim(0,2*pi);
颜色参数表
颜色 | 字符 | 颜色 | 字符 |
---|---|---|---|
红 | r | 粉 | m |
绿 | g | 青 | c |
蓝 | b | 白 | w |
黄 | y | 黑 | k |
线型参数表
线型 | 符号 | 示例 |
---|---|---|
实线 | - | _________ |
虚线 | -- | --------- |
冒号线 | : | .... .... .... .... |
点画线 | -. | ___.___.___.___. |
数据标记点参数表
标记 | 描述 | 生成的标记 |
---|---|---|
"o" |
圆圈 | |
"+" |
加号 | |
"*" |
星号 | |
"." |
点 | |
"x" |
叉号 | |
"_" |
水平线条 | |
"|" |
垂直线条 | |
"square" |
方形 | |
"diamond" |
菱形 | |
"^" |
上三角 | |
"v" |
下三角 | |
">" |
右三角 | |
"<" |
左三角 | |
"pentagram" |
五角形 | |
"hexagram" |
六角形 | |
"none" |
无标记 | 不适用 |
例子:
x = 0:0.01:2*pi;
y = sin(x);
figure; % 建立一个幕布
plot(x, y, 'm-.o'); % 绘制图片, 粉色, 点画线, 圈
title('正弦函数图形 [0,2pi]'); % 标题
xlabel('x'); % x轴标签
ylabel('sin(x)'); % y轴标签
xlim(0,2*pi);
plotyy
(不推荐)创建具有两个 y 轴的图形
https://ww2.mathworks.cn/help/matlab/ref/plotyy.html
yyaxis
创建具有两个 y 轴的图
例子:
x = linspace(0,10);
y = sin(3*x);
yyaxis left
plot(x,y)
z = sin(3*x).*exp(0.5*x);
yyaxis right
plot(x,z)
ylim([-150 150])
三维绘图
使用plot3函数, 和plot函数类似
例子:
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t,'r');
xlabel('sin(t)');
ylabel('cos(t)');
zlabel('t');
title('弹簧');
开启网格线
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t,'r');
xlabel('sin(t)');
ylabel('cos(t)');
zlabel('t');
title('弹簧');
grid on % 开启网格线