项目经历整理

This commit is contained in:
yinkanglong_lab
2021-04-06 23:30:37 +08:00
parent b845347c66
commit 30f583d779
54 changed files with 3246 additions and 0 deletions

21
Matlab/教程/MATLAB1.md Normal file
View File

@@ -0,0 +1,21 @@
# > MATLAB操作界面
---
* **操作面板**
1. 文件目录(文件结构的显示)
2. 编辑器(打开的脚本文件)
3. 命令行窗口(用于随时操作数据)
4. 工作空间(用于储存变量的空间)
5. 命令历史记录(用于储存命令行中的数据)
6. 导航栏(主页、绘图、应用程序、编辑器、发布、视图)
> 使用tab键调节嵌套中的缩进问题。
* **辅助命令**
1. path搜索文件的目录
2. help path查看帮助
3. cdcurrent directory
4. userpath用户使用的路径
5. savepath保存路径

34
Matlab/教程/MATLAB10.md Normal file
View File

@@ -0,0 +1,34 @@
# MATLAB的符号运算
## > MATLAB的符号运算
***
* **符号计算基础**
1. 符号变量和符号常量``` a = sym('a'),syms b,c = sym('3')
2. 符号表达式。生成方式声明符号表达式中所有的变量为符号变量。或者直接使用sym函数生成一个符号表达式f = sym(字符串)。一些满足符号表达式的字符串能够自动转换为符号表达式
3.
* **符号函数**
1. simplify多项式规则化简
2. simple多种规则对多项式化简
3. sym()符号表达式和数值的转换使用eval()或者numeric函数。
4. 因式分解函数factor(化简) , expand展开 , collect合并同类项
5. 符号矩阵。构建方式与数值矩阵相同,符号矩阵的运算同数值矩阵相同。
6. 符号矩阵的转置transposedeterm '是共轭转置
1. subsf1,3使用3 代替原函数中的自变量,得到最终的结果。
2. 符号极限,符号微分,符号积分
3. limit(y,0)计算y函数在零点的值
4. diff(y,3)微分求解
5. int(y3)求y3的积分函数
6. int(y4,1,2)对y4从一道二积分
* **符号级数**
1. symsum符号级数求和
symsum函数名臣针对变量起始截止
2. Taylor(f函数名称针对的变量展开项数展开的函数值)
* **符号方程求解**
1. 符号代数方程
2. solve(方程表达式)
3. 符号方程组
4. [x,y] = solve('x + y',时间,'x和y是... ...')
5. 符号微分方程组
6. dsolve

65
Matlab/教程/MATLAB2.md Normal file
View File

@@ -0,0 +1,65 @@
# 命令和语句
## >命令行的特点
***
* **命名和语句**
1. 字母开头,字母下划线,区分大小写
2. 不声明不定义拿来即用。
3. 分号决定语句是否输出
4. 英文省略号续行
* **赋值**
1. 等于号赋值给变量
2. 无赋值对象时默认赋值给ans
* **变量管理**
1. 工作空间窗口查看
2. who whos 查看
* **全局的文件操作**
1. 清除变量的命令clear,清除所有变量或者单个变量
2. save[文件名][变量名][-append][-ascii]
> .mat文件是一种数据文件的类型,用于储存matlab中的数据
# >数据的类型和显示
---
* **format函数,控制显示**
1. short long e rat hex + bank compact loose
* **MATLAB中常见的数据类型**
1. 数值型:双精度,单精度,符号整型数据
2. 字符串、结构体、单元、多维矩阵、稀疏矩阵
3. 默认双精度double
4. unit8()将double型数据转换成无符号整型
5. double()能够将int类型转换为double类型的数据
> class(变量)能够显示一个数据的类型
* **字符串类型的访问**
1. 单引号
2. double()或者abs查看ascii值
3. char()转换为字符
4. str2num()获取字符串表面数值
5. num2str()数字表面上的字符串
* **字符串的相关操作**
eval()执行字符串类型的语句与PHP极其相似
* **结构体的建立**
结构体.成员名 =表达式
* **结构体的访问**
1. isstruct()返回结构体的类型1或者0
2. fieldnames()成员的名字
3. isfield(成员名,结构体名)一个变量是否是结构体的成员
4. rmfield()
5. getfield()
# >特殊的MATLAB数据类型
****
* **单元CELL**
1. 使用大括号,允许不同类型的元素,同结构体
2. 结构体更像键值对,而单元更像是数组,无可定义的数组。

41
Matlab/教程/MATLAB3.md Normal file
View File

@@ -0,0 +1,41 @@
# 矩阵
## >矩阵的建立
***
* **直接输入法**
1. 空格和逗号建立行向量
2. 分号建立列向量
* **使用M文件建立**
1. 这里的m文件就是MATLAB的脚本文件
2. 可以直接使用该文件的名字加载脚本也可以使用load命令
* **特殊矩阵的建立**
1. zeros()零矩阵
2. ones()1矩阵
* **冒号表达式**
e1:e2:e3;表示起始值:步长:结束值;
* **linespace(1,5,3)**
## >矩阵的简单操作
***
* **索引矩阵**
1. 可以使用矩阵元素的行标和列标或者矩阵元素的序号来索引矩阵
2. 序号和下标之间的转换方式sub2ind(size(A),m,n);ind2sub(size(A),z);
3. [m,n] = find(A == 8);
* **重排矩阵**
1. reshape(A,m,n)大小相同
* **矩阵转置**
1. A = A'
* **矩阵拆分**
1. H = A(1,:)第一行所有列的内容。
2. H = A(2,3:5)第二行第三列到第五列
3. 向量索引和标量索引H = A([1 2],[1,2])校表索引的方法本质上是两个标量(精确定位),两个向量(生成范围)
* **删除矩阵元素**
1. 赋空值
* **矩阵扩展和压缩**
1. repmat(A,2,1)
2. unique(R)保留其中不同的数据(集合化)

31
Matlab/教程/MATLAB5.md Normal file
View File

@@ -0,0 +1,31 @@
# MATLAB的程序控制结构
## >M文件
***
* **分类**
1. 命令文件=脚本文件,没有输入和返回,命令文件可以对工作空间的变量进行操作,文件内部的变量为局部变量,执行后自动清除。
2. 函数文件,可以有输入和返回。
3. 命令文件可以直接运行,函数文件必须以调用的形式运行。
* **建立和打开**
1. 可视化新建
2. edit命令新建
## >程序控制结构
* **使用顺序结构的输入和输出**
1. inputpromt,'s's参数决定是否为字符串
2. disp('string')能够显示字符串或者变量。
3. pause(3)暂停函数,中间是秒数
* **使用分支结构**
1. 单分支的if语句由if决定是否执行
2. 双分支的if-else-end语句
3. 多分支结构if-elseif...else-end
4. switch语句中的case可以加任何数据类型也可以加矩阵向量数组集合
5. try分支是一种试探性的分支提高了程序的容错性。
try 语句组1
catch 语句组2
end
* **使用循环结构**
1. for循环 是在一个范围中循环
2. while循环是一个条件满足循环

38
Matlab/教程/MATLAB6.md Normal file
View File

@@ -0,0 +1,38 @@
# MATLAB中程序的编写和调试
## >函数文件
***
* **基本结构**
1. function[输出参数] = 函数名([输入形参])同命令文件的不同之处在于有参数的输入和输出
2. [注释说明]
3. 函数体
4. 函数文件名和函数名称一致(不一致时使用文件名)
5. 注释信息会在help命令中显示出来
6. 也可以使用lookfor命令查找
* **函数参数可调标识变量**
1. nargin 输入参数个数(由执行命令时,实际传入参数的数量决定)
2. nargout 输出参数的个数由执行命令时被赋值项的返回值个数决定nargout的值
3. varargin 代表未知的参数变量实现了可变参数数量的输入。当输入变量多余设定好的参数是varargin作为元胞数组储存多余的变量注意MATLAB中的数组下标是从1开始的
4. varargout 实现了可变参数数量的输出。
5. 都是在函数文件内部实现的参数输入输出数量的控制。有点像巧妙地实现了函数的重载功能。
6. nargchk(2,4,nargin)可以生命输入参数的个数为2到4个。
6. error('wrongmessage')可以给出错误信息。
## > 全局变量
***
* **global**
1. 使不同M文件访问同一个变量数据
2. 每一个文件中都要声明给global
## > 程序调试
***
* **断点和单步**
1. 添加断点,能够一步一步执行,在执行过程中,可以对中间量进行测试和输出,载明窗口中进行操作。
* **根据错误提示,一步步调试**
1. 使用error输出错误提示然后调试
2. 使用系统中的错误提示

34
Matlab/教程/MATLAB7.md Normal file
View File

@@ -0,0 +1,34 @@
# MATLAB中的绘图功能
## >二维高层绘图的基本函数
***
* **plot函数**
1. plot(x,y);
2. x和y为相同长度的向量
3. 如果plot为单个参数绘制折现图横坐标为自然数。如果参数为复数则实轴和虚轴进行绘制。可以绘制圆
4. 如果绘制过程中自变量为向量因变量为矩阵则对矩阵的每一个列向量绘制一个关于自变量的图像。也就是说如果想要在同一图中绘制函数不需要写多个plot只需要将因变量转换为矩阵就好。
5. 如果绘制过程中自变量和因变量同为高阶矩阵则会为x的每一列为自变量y的每一列为因变量绘图。
6. 注意行向量的能够组合成行向量矩阵,列项量能组合成列项量矩阵。
7. linespace()和冒号表达式均可以产生行向量
## >二维高层绘图辅助操作
***
* 涉及到的函数、控制或者命令
[这里有一张图片](http://)
* 标注
* 坐标轴控制
[这里有一张图片](http://)
* 图形名称
* 曲线名称
* 图例
* 图形保持
* 窗口分割
[这里有一张图片](http://)
* 可以使用latex字符进行控制
* xlim([xmin,xmax])
* ylim([ymin,ymax])
* axis([xmin,xmax,ymin,ymax])

51
Matlab/教程/MATLAB8.md Normal file
View File

@@ -0,0 +1,51 @@
# MATLAB二维底层绘图的修饰
## > 对象和句柄
> *似乎MATLAB也能满足面向对象编程的一些条件诶
> MATLAB也能实现GUI图形用户界面编程同强大的C++、Java有一拼*
***
* **对象和句柄的概念**
1. MATLAB吧构成图形的各个基本要素成为图形对象产生每一个图形对象时MATLAB会自动分配一个唯一的值用于表示这个对象成为句柄好像子对象和指向对象的指针
* **对象间的基本关系**
1. 计算机屏幕->图形窗口->(用户菜单,用户控件,坐标轴)
2. 坐标轴->(曲线,曲面,文字,图像,光源,区域,方框)
## > 基本地城绘图函数
***
* **line对象**
1. ` h = line([-pi:0.01:pi],sin([-pi:0.01:pi]));`
2. 其中h成为line曲线对象的句柄。
3. line对象的修饰
* color属性
* LineWidth属性
* LineStyle属性
* Marker属性
* MarkerSize属性
4. plot函数能够产生line对象然后继续对返回的句柄进行操作、或者直接在绘制过程进行修饰。
5. ``` h1 = line('XData',[-pi:0.01:pi],'YData',sin([-pi:0.01:pi]),'LineWidth',1,'LineStyle',':','Color','r'); ```
6.
* **set底层对象的属性设置函数**
1. 可以通过生成的句柄对MATLAB中生成的操作对象进行。使用set函数进行设定。` set(h1,'LineWidth',2,'Marker','p','MarkSize','15') `
2. line对象常见的性质XData,YData,ZData,Color(y,m,c,r,g,b,w,k),DisplayName(legend ()),LineStyle(-,--,:,-.,none),LineWidth,Marker(+,o,*,.,X,s,d,'^',V,>,<,p,h,none)。MarkerEdgeColor,MarkerFaceColor,MarkerSize,Type。
* **text对象底层标注函数**
1. text是一个line的子对象可以使用text函数进行操作。
2. ht = text(0,4,'string')
3. text对象相关的属性ColorFontSizeStringRotation。
* **axes对象底层坐标轴函数**
1. axes是一个line/figure的对象可以使用axes函数进行操作
2. ``` hf = figure;
ha = axes('Parent',hf,'Position','Units','Pixels',[10,10,10,100]);```
3. 常见属性Box,GridLineStyle,Position,Units,XLabel,Ylabel,ZLabel,Xlim,Ylim,Zlim相关属性。
> 补充一点对MATLAB的认识
> MATLAB是矩阵实验室Matrix Laboratory之意。其主要提供了以下几种功能
> 1. 数值计算
> 2. 符号计算
> 3. 文字处理
> 4. 可视化建模仿真(图形功能强大)
> 5. 实时控制等功能(自动控制理论应用)
> MATLAB除了内部函数主包还有三十多种工具包用于不同领域不同需求的功能拓展。

29
Matlab/教程/MATLAB9.md Normal file
View File

@@ -0,0 +1,29 @@
# MATLAB Notebook使用简介
> 沟通MATLAB和word等微软软件功能
## &gt; Notebook的安装和启动
***
* **执行安装命令**
notebook -setup
* **执行启动命令**
1. 原理Word调用MATLAB服务器进行操作。
2. MATLAB和excel服务器之间也可以相互调用
3. 从Word中启动notebook或者从MATLAB中启动MATLAB。
## &gt; M-book中命令的运行
***
* **代码的运行**
1. 定义输入单元格式发生变化define input cell
2. 执行输入单元evalute执行已经输入的单元
3. 作用就像是直接在word中进行m脚本文件的一些相关操作当在论文中插入数据处理时用这种方法。
4. 使用[plot(a,b)]函数能够直接将图片绘制在word文档中
5. 定义自动初始化单元。define autoInit cell
* **单元组**
1. 将a和b定义为分别独立的输入单元而且其单步执行就像给word添加了一种图形绘制和数值计算的能力插件
2. 定义为输入单元组能够识别超过一行的命令。group cell。
3. 输出格式的控制。notebook options

57
Matlab/教程/matlab4.md Normal file
View File

@@ -0,0 +1,57 @@
# MATLAB的矩阵处理基础
## &gt;特殊矩阵的建立
***
* 零矩阵
* 1矩阵
* 单位矩阵eye(10) eye(m,n)
* 随机矩阵rand(m,n)randn(m,n)正态矩阵 获的(a,b)之间的随机矩阵A = a+(a-b)rand(m,n);
获得均值为u方差为s的随机矩阵y = u+sqrt(s)*randn;
> mean()求均值
> std求方差
* 魔方矩阵magic(5)行列对角线和相同
* heilbert矩阵和toeplitz矩阵
hilb(4)希尔伯特矩阵 每一个位置的元素为1/i+j
toeplitz(1:6)左上到右下的斜线元素相同
* 矩阵之间的加法和数乘;
* 矩阵的行列式det()
* 矩阵的逆inv()
* 向量的内积b的共轭转置乘以a
conj(b)'*a
dot(a,b)直接求两个向量的内积。
## &gt;线性方程组的求解
****
方法一:
得到系数矩阵A = [1,2,3;1,4,9;1,8,27];
常数向量b = [5,-2,6]';
x = inv(A)*b
方法二x =A/b
* **矩阵的相似化简和分解**
1. A = [1,2,3;4,5,6;7,8,9]jordan(A)获得A化简的jordan标准型
2. [V J] = jordan(A);获得的事相似矩阵和jordan标准型。
3. 矩阵的特征值eig
4. [E D]=eig(A)获得A的特征值和特征向量
* **向量和矩阵和范数**
1. norm(A,1)
2. norm(A,2)
3. norm(A,inf)
4. norm(A,'fro')
* **矩阵的分析**
1. 函数矩阵(有函数构成的矩阵)
>syms x
A = [sin(x) exp(x) 1;cos(x) x^2+1 log(x)];
diff(A);对矩阵求导
* **矩阵函数**
1. funm(A,@exp)通用矩阵函数
2. expm(A)
3. funm(A, @sin)
4. funm(A, @cos)