网站后台不显示文章内容,电子商务网络技术,南京广告公司排名前20,WordPress头像服务文章目录 MatLab笔记一、命令行窗口二、变量命名规则三、数据类型1. 数字2. 字符与字符串3. 矩阵3.1 矩阵创建3.2 矩阵的修改和删除3.3 矩阵的拼接与重构重排3.4 矩阵的运算方法3.5 矩阵的下标 4. 元胞数组#xff08;类似数据容器#xff09;5. 结构体 四、逻辑与流程控制五… 文章目录 MatLab笔记一、命令行窗口二、变量命名规则三、数据类型1. 数字2. 字符与字符串3. 矩阵3.1 矩阵创建3.2 矩阵的修改和删除3.3 矩阵的拼接与重构重排3.4 矩阵的运算方法3.5 矩阵的下标 4. 元胞数组类似数据容器5. 结构体 四、逻辑与流程控制五、函数1. 基础函数2. 匿名函数3. 常用函数4. 特殊函数 六、绘图1. 二维图2. 三维图3. 图形窗口分割 总结总结 MatLab笔记
一、命令行窗口
直接交互类似终端命令命令符 clc–清除所有命令clear all–清空工作区所有变量%% --注释有分割线% --注释无割线ctrl r --多行注释ctrl t --取消注释iskeyword --关键字
二、变量命名规则
区分大小写以字母开头由字母、数字、下划线组成不能使用标点不超过63位
三、数据类型
数字、字符与字符串、矩阵、元胞数结构体
1. 数字
整数和浮点数
运算符-*/^
2. 字符与字符串
单引号和双引号定义表示:
%% 字符与字符串
id a
id2 cd
id id2 % 字符串的计算是ASCII码值的运算num 155
char(num) % 将输入数值转换为对应的字符
num2str(id) % 将数字包括整数、浮点数等转换为字符串表示。str I Love You
length(str) % 空格也占一个字符3. 矩阵
3.1 矩阵创建
直接创建
A [1 2 3;2 5 8;9 8 2] % 分号表示换行函数创建
% 函数创建
E zeros(10,5,3) % 创建一个10行5列3维度的全0矩阵
F ones(13,5,3) % 创建一个10行5列3维度的全1矩阵
G eye(3,3) % 创建一个3*3的单位矩阵
E(:,:,1) rand(10,5) % 生成的随机数在 (0, 1) 区间内均匀分布
E(:,:,2) randi(5,10,5) % 生成一个10行5列的、在 [1, 5] 范围内的伪随机整数矩阵
E(:,:,3) randn(10,5) % 生成标准正态分布的伪随机数均值为 0方差为 13.2 矩阵的修改和删除
修改
A [1 2 3 4;2:5;3:6]% 位置索引
A(2,3) 10 % 将第2行第3列替换
A(2:) 10 % 将第2行整行替换
A([1,3],[1,2]) 0 % 将第13行的第12列替换% 线性索引
A(4) 8 % 按列从1开始第4个数替换
A(5,6) 888 % 不够的列数以0扩展删除
% 删除行列
A(:,[1]) [] % 删除所有行的第1列
A(:,[1,end]) [] % 删除所有行的第1和最后一列
A(:,[2:end]) [] % 删除所有行的第2到最后一列% 删除单个 -- 通过线性索引
A(4) [] % 删除之后由于矩阵形式发生变化按列铺排成一行显示3.3 矩阵的拼接与重构重排
拼接
% 横向拼接(行数相同):
A [1 2 3 4;2:5;3:6]
B ones(3,4)
C [A,B] % ,横向
% 或
D cat(2,A,B) % 2表示横向拼接% 竖向拼接(列数相同):
B2 ones(2,4)
E [A;B2] % ;竖向
% 或
E1 cat(1,A,B2) % 1表示横向拼接重构重排
% 重构
A randi(10,2,6)
B reshape(A,3,4) % 重构元素数量不变按线性索引重构
B1 reshape(A,3,[]) % 要求3行列数自动匹配% 重排sort(A,dim,descend)
A randi(10,2,6)
B sort(A,1,ascend); % 1表示对每列排序ascend表示升序
B1 sort(A,2,descend) % 2表示对每行排序descend表示降序
C sortrows(A,4,descend) % 以第4列降序排序为基准整行排序3.4 矩阵的运算方法
函数运算
% 函数运算
% sum(A,dim)
A randi(10,2,6)
sum(A,1) % 按列求和
sum(A,2) % 按行求和
sum(A,all) % 全部求和% prod()求乘积
% mean()求平均值
% median()计算中位数
% mode()计算众数
% min()求最小值
% max()求最大值算数运算
五种兼容模式
注意算术符号加点意味对应位置单独进行计算
% 矩阵的四则运算
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 % 两矩阵相乘前矩阵列数与后一个矩阵行数相同
F A .* B % 两矩阵对应项相乘
G A / B % 相当于A * B的逆
H A ./ B % 两矩阵对应项相除%
A [1 2 3;2 5 8;9 8 2]
B A % 对矩阵进行转置列转为行
C A(:) % 将矩阵以列方向进行拉直
D inv(A) % 对方阵矩阵求逆关系运算
、、、、、~对应位置比对返回布尔值
% 关系运算
A [1:4]
B ones(3,4)
A B1 0 0 0
1 0 0 0
1 0 0 0逻辑运算 与|或~非xor异或双与||双或 对应位置进行逻辑运算。
3.5 矩阵的下标
% 矩阵的下标起始值为1
A magic(5)
B A(2,3) % 取第2行第3列数据
C A(3,:) % 取第3行所有列
D A(:,4) % 取第4列所有行
[m,n] find(A 20) % 返回符合条件的索引值
[m,n] find(A 21)4. 元胞数组类似数据容器
A cell(1,6) % cell(行列)
A{2} eye(3) % 生成一个3*3的对角线位1的单位矩阵 切记索引位置从1开始
A{5} magic(5) % 幻方矩阵矩阵的每行、每列以及主副对角线上的数之和相等
B A{5}5. 结构体
% 类似于字典
books struct(name,{{Machine Learning,Data Mining}},price,[30,40])
books.name % 取出结构体中属性对应的值cell类型
books.name(1) % 切片从1开始cell类型
books.name{1} % 用{}取出的值位字符串形式books.price
books.price(1)四、逻辑与流程控制
%% 逻辑和流程控制
% 1. for .. end
sum 0;
for n 1:5sum sum n^2
endsumm 0
for i 1:5p1for j 1:ip p*jendsumm summ p
end% 2. while .. end
s 0
n 1
while n10s snn n1
end% 3. 分支结构 if .. end;if ..elseif .. else .. end;switch .. case .. end
a 100
b 50
c 110
if a b成立
endif a b a c成立
else错误
endswitch a 100case a 80hhhcase a 60pppotherwisettt
end% break结束循环
% continue 跳过本次循环五、函数
1. 基础函数
基本结构
function[返回的形参output1,output2……] 函数名(输入的形参input1,input2……)
…………
end%% 函数
function [max,min] max_min_val(x)
max subfuc1(x)
min subfuc2(x)function r subfuc1(x) % 子函数x1 sort(x,descend);r x1(1);endfunction r subfuc2(x)x1 sort(x,a);r x1(1);end
end调用
创建一个新的-m文件然后先从另一个文件调用它:
A 1:20
[max,min] max_min_val(A);
max
minmax 20
min 12. 匿名函数
不需要单独创建-m文件基本结构
f (参数1参数2) 函数表达式ff (x,y)x^2 y^2;
vv (x,y)x.^2 y.^2;调用
f(2,3)
x 1:5;
y 0.1:0.1:0.5;
vv(x,y)ans 13ans 1.0100 4.0400 9.0900 16.1600 25.25003. 常用函数
%% 1. 数值函数
x -1.5;
y -3 4i;
abs(x) % 取绝对值
abs(y) % 还可以求模mod(11,3) % 取余sqrt(8) % 开根号
sqrt(1:9) % 对向量中每个数开根
format long % 长精度exp(2) % 计算以自然常数e为底的指数
exp(0)log(2) % 以e为底的对数运算
log(exp(3))log2(8) % 以2为底的对数运算
log10(100) % 以10为底的对数运算round(2.5) % 四舍五入
round(3.1415926,2) % 指定小数点后几位四舍五入保存,n0往右数
round(3141.59,-2) % n0往左数%% 三角函数
%% 常用函数
A [1:9];
x 8;
find(A x)
isempty(find(A x)) % 确定数组是否为空x 0:4;
y 0:3;
[xx,yy] meshgrid(x,y); % 返回网格坐标
xx
yyseed 3;
rng(seed) % 设置随机数种子
randi(10,3,3)4. 特殊函数 六、绘图
1. 二维图
%% 二维平面绘图
% 1. 绘制简单二维线图
x 0:0.01:2*pi
y sin(x)
figure % 创建一个幕布
plot(x,y) % 画图
title(y sin(x)) % 命名标题
xlabel(x) % x轴标名
ylabel(sin(x)) % y轴标名
xlim([0 2*pi]) % 设置x范围
text(2.5,sin(2.5),sin(x)) % 在线上加标注文字% 2. 设置颜色、线型、数据标记点
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) % 将两个y值同一个x轴绘制在一个图上
set(get(AX(1),Ylabel),String,Slow Decay) % y轴命名
set(get(AX(2),Ylabel),String,Fast Decay)
xlabel(Time (\musec)) % x轴命名
title(Multiple Decay Rates)
set(H1,LineStyle,--) % 设置线条形状
set(H2,LineStyle,:)
legend(y1,y2) % 添加图例% 3. 条形图
x [2021,2022,2023];
y [10,20;20,30;100,200]
bar(x,y)% 4. 直方图
x randn(1000);
nbins 25 % 等间距条个数
H histogram(x,nbins)
counts H.Values % 每个bin的个数% 5. 饼图
x [1:2:9]
pie(x) % 1/sum(x)占比% 6. 散点图
t 0:pi/50:2*pi;
x 16*sin(t).^3
y 13*cos(t) - 5*cos(2*t) - 2*cos(3*t) - cos(4*t);
scatter(x,y,red,filled)% 7. 矢量类图形
a [4,5];
quiver(0,0,a(1),a(2))% 8. hold on 保持原有图形2. 三维图
%% 三维立体绘图
t 0:pi/50:10*pi
plot3(sin(t),cos(t),t) % (x,y,z),绘制三维图像
xlabel(sin(t)) % 坐标轴命名
ylabel(cos(t))
zlabel(t)
grid on % 背景添加网格线
axis square % 限制坐标轴规整%% 绘制三维曲面
x -1:0.2:2;
[x,y] meshgrid(x)
z x.*exp(-x.^2-y.^2);
mesh(x,y,z)
surf(x,y,z)%% 双峰函数
[x,y,z] peaks(30)
mesh(x,y,z)
grid3. 图形窗口分割
%% 图形窗口分割
x linspace(0,2*pi,60)subplot(2,2,1) % 将幕布划分为2*2大小选择第1个区域
plot(x,sin(x)-1)
title(sin(x)-1);axis([0,2*pi,-2,0]) % axis设置了当前图像的坐标轴范围
% x轴的范围从0到2πy轴的范围从-2到0。subplot(2,1,2)
plot(x,cos(x)1)
title(cos(x)1);axis([0,2*pi,0,2])总结
矩阵的创建以及基本运算函数的定义方法逻辑控制的结构绘图的方法
quare % 限制坐标轴规整
%% 绘制三维曲面 x -1:0.2:2; [x,y] meshgrid(x) z x.*exp(-x.2-y.2); mesh(x,y,z) surf(x,y,z)
%% 双峰函数 [x,y,z] peaks(30) mesh(x,y,z) grid ### 3. 图形窗口分割matlab
%% 图形窗口分割
x linspace(0,2*pi,60)subplot(2,2,1) % 将幕布划分为2*2大小选择第1个区域
plot(x,sin(x)-1)
title(sin(x)-1);axis([0,2*pi,-2,0]) % axis设置了当前图像的坐标轴范围
% x轴的范围从0到2πy轴的范围从-2到0。subplot(2,1,2)
plot(x,cos(x)1)
title(cos(x)1);axis([0,2*pi,0,2])总结
本篇介绍了
矩阵的创建以及基本运算函数的定义方法逻辑控制的结构绘图的方法