mirror of
https://github.com/Estom/notes.git
synced 2026-04-23 18:11:47 +08:00
项目经历整理
This commit is contained in:
21
Matlab/教程/MATLAB1.md
Normal file
21
Matlab/教程/MATLAB1.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# > MATLAB操作界面
|
||||
|
||||
---
|
||||
|
||||
* **操作面板**
|
||||
1. 文件目录(文件结构的显示)
|
||||
2. 编辑器(打开的脚本文件)
|
||||
3. 命令行窗口(用于随时操作数据)
|
||||
4. 工作空间(用于储存变量的空间)
|
||||
5. 命令历史记录(用于储存命令行中的数据)
|
||||
6. 导航栏(主页、绘图、应用程序、编辑器、发布、视图)
|
||||
|
||||
> 使用tab键调节嵌套中的缩进问题。
|
||||
|
||||
|
||||
* **辅助命令**
|
||||
1. path(搜索文件的目录)
|
||||
2. help path(查看帮助)
|
||||
3. cd(current directory)
|
||||
4. userpath(用户使用的路径)
|
||||
5. savepath(保存路径)
|
||||
34
Matlab/教程/MATLAB10.md
Normal file
34
Matlab/教程/MATLAB10.md
Normal 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. 符号矩阵的转置transpose,determ ,'是共轭转置
|
||||
1. subs(f1,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
65
Matlab/教程/MATLAB2.md
Normal 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
41
Matlab/教程/MATLAB3.md
Normal 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
31
Matlab/教程/MATLAB5.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# MATLAB的程序控制结构
|
||||
|
||||
## >M文件
|
||||
|
||||
***
|
||||
|
||||
* **分类**
|
||||
1. 命令文件=脚本文件,没有输入和返回,命令文件可以对工作空间的变量进行操作,文件内部的变量为局部变量,执行后自动清除。
|
||||
2. 函数文件,可以有输入和返回。
|
||||
3. 命令文件可以直接运行,函数文件必须以调用的形式运行。
|
||||
* **建立和打开**
|
||||
1. 可视化新建
|
||||
2. edit命令新建
|
||||
|
||||
## >程序控制结构
|
||||
* **使用顺序结构的输入和输出**
|
||||
1. input(promt,'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
38
Matlab/教程/MATLAB6.md
Normal 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
34
Matlab/教程/MATLAB7.md
Normal 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
51
Matlab/教程/MATLAB8.md
Normal 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对象相关的属性:Color,FontSize,String,Rotation。
|
||||
* **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
29
Matlab/教程/MATLAB9.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# MATLAB Notebook使用简介
|
||||
> 沟通MATLAB和word等微软软件功能
|
||||
|
||||
## > Notebook的安装和启动
|
||||
|
||||
***
|
||||
|
||||
* **执行安装命令**
|
||||
notebook -setup
|
||||
* **执行启动命令**
|
||||
1. 原理Word调用MATLAB服务器进行操作。
|
||||
2. (MATLAB和excel服务器之间也可以相互调用)
|
||||
3. 从Word中启动notebook或者从MATLAB中启动MATLAB。
|
||||
|
||||
## > 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
57
Matlab/教程/matlab4.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# MATLAB的矩阵处理基础
|
||||
|
||||
## >特殊矩阵的建立
|
||||
|
||||
***
|
||||
|
||||
* 零矩阵
|
||||
* 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)直接求两个向量的内积。
|
||||
|
||||
## >线性方程组的求解
|
||||
|
||||
****
|
||||
方法一:
|
||||
得到系数矩阵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)
|
||||
Reference in New Issue
Block a user