自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 MATLAB绘图辅助操作

1.颜色、标记和线型颜色:用不同的英文字母表示不同的颜色,多数与英文单词对应。颜色名称颜色符号蓝色b绿色g红色r青色c洋红m黄色y黑色k白色w标记和线型标记线型.-(实线)O:(点线)×-.(点划线)+–(虚线)*标记名称标记符号方形S菱形D向下三角形∨向上三角形^向左三角形>向右三角形

2021-10-29 15:23:52 399

原创 MATLAB基本二维曲线绘制

1.plot(y)y可以是向量、实数矩阵或复数向量。y是向量:绘制以向量索引为横坐标、以向量元素值为纵坐标的图形。y是实数矩阵:绘制y的列向量对其坐标索引的图形。y是复数向量:plot(y)相当于plot(real(y),imag(y))例3.1-1y = 5*(rand(1,10)-.5)plot(y)例3.1-2y = [0 1 2;2 3 4;5 6 7]plot(y)2.plot(x,y)x,y均可以是向量和矩阵。x,y均是n维向量:绘制向量y对向量x的图形,x为

2021-10-29 15:23:15 1250

原创 MATLAB矩阵的分解与变换

1.矩阵的分解三角分解(方阵):[l,u]=lu(a)正交分解:[q,r]=qr(a)a(n,m)q:n阶正交方阵r:与a同阶的上三角矩阵奇异值分解:[u,s,v]=svd(a)u:n阶正交方阵s:n×m阶的对角阵,对角线元素为a的奇异值,长度为n、m的较小者v:m阶正交方阵2.矩阵的变换矩阵的共轭转制:’矩阵的共轭:conj矩阵的转置:conj’复数矩阵的赋值对元素逐个赋值:z=[1+2i,3+4i;5+6i,7+8i]对实部和虚部

2021-10-29 15:22:36 569

原创 MATLAB矩阵的行列式、秩与迹及特征值分析

1.矩阵的行列式运算符:det()注意:用于求方阵的行列式值2.矩阵的秩与迹2.1矩阵的秩矩阵的秩是矩阵的列向量组(或行向量组)的任一极大线性无关组所含向量的个数。运算符:rank()2.2矩阵的迹矩阵的迹等于矩阵主对角线元素的总和。也等于矩阵特征值的总和。运算符:trace()注意:要求矩阵是方阵3.矩阵的特征值分析E = eig(A) 求矩阵A的全部特征值,并构成向量E[V,D] = eig(A) 求矩阵A的全部特征值,构成对角矩阵D;求A的特征向量构成列向量V。

2021-10-29 15:22:05 3091

原创 MATLAB矩阵元素的处理

1.矩阵元素的取整向下取整:floor()向上取整:ceil()四舍五入取整:round()截尾取整:fix() 去掉小数部分例2.3-5A = [2.3,2.7;-2.3,-2.7]A_f = floor(A)A_c = ceil(A)A_r = round(A)A_x = fix(A)2.矩阵元素的取模和取余mod(x,y) 取模rem(x,y) 取余均为取余函数,区别在于:当x和y的正负号相同时,两个函数的结果相同,均为x除以y的余数;当x和y的正负号不同时,r

2021-10-29 15:21:32 921

原创 MATLAB矩阵的关系运算和逻辑运算

1.矩阵的关系运算关系运算符:<, <=, >, >=, ==, ~=运算结果:真(1),假(0)运算法则标量比较:直接比较数的大小矩阵比较:对应位置元素按照标量运算关系进行比较,最终结果为一个由0和1组成的、与原矩阵同阶数的矩阵。注意:相同阶数的矩阵才能进行比较。例2.3-3 判断A中的元素能否被3整除。A = magic(3)P = (rem(A,3) == 0)#rem():取余数2.矩阵的逻辑运算逻辑运算符:与(&),或(|),非

2021-10-29 15:21:00 2496

原创 MATLAB矩阵的算术运算

1.矩阵的基本算术运算加、减、乘、除(左除、右除)、乘方1.1矩阵的加、减运算运算符:A+/-B注意:要求相加减的矩阵阶数相同。检查矩阵阶数的语句:[n,m]=size(A)l = length(A)1.2矩阵的乘法运算运算符:A*B注意:要求A的列数与B的行数(内阶数)相等。1.3矩阵的除法运算左除:A\B右除:B/A注意:左除时要求两矩阵的行数必须相等,右除时要求两矩阵的列数必须相等。1.4矩阵的乘方运算运算符:矩阵^幂次A^3例2

2021-10-29 15:20:24 733

原创 MATLAB字符数组和空数组

1.字符数组主要用于可视化编程,例如界面设计和图形绘制。1.1字符数组的创建把待建字符放在单引号中。注意:单引号必须在英文状态下输入。A=‘I am a Chinese!’1.2字符数组的拼接利用方括号和逗号进行两个及以上字符数组的直接拼接例2.2-3s1='Beijing's2='welcome to's=[s2,s1]s=['welcome to',s1]s=['welcome to ',s1]1.3字符数组的显示disp(‘Beijing’)

2021-10-29 15:19:42 811

原创 MATLAB二维数组的创建与元素提取

1.二维数组(矩阵)的创建1.1直接输入法从键盘直接输入元素。输入规则如下:矩阵元素必须在方括号内;同行元素之间用空格或逗号隔开;行与行之间用分号或回车符隔开;元素可以是数值、变量、表达式或函数;矩阵的维数不必预先定义。a1=[1 2 3;4 5 6;7 8 9]a2=[1,2,3;4,5,6;7,8,9]a3=[1 2 3;​ 4 5 6;​ 7 8 9]1.2利用MATLAB函数创建矩阵利用MATLAB中的特殊矩阵函数创建新矩阵。含义函数

2021-10-29 15:19:12 15667 1

原创 MATLAB一维数组的创建与元素提取

1.一维数组(向量)的创建1.1直接输入法从键盘直接输入元素,列与列之间的数据用逗号或空格分隔,行与行之间的数据用分号分隔。#生成列向量*a=[1;2;3]#生成列向量b=[1,2,3]c=[1 2 3]说明:在一行中写多条语句时,逗号和分号可作为语句间的分隔符。如果用分号,则命令窗不显示运行结果。1.2冒号生成法用于产生递增或递减的等差数列。格式:初值:步长:终值说明:步长为1时可以省略。a=1:2:6b=1:61.3定数线性采样法用于产生起止于

2021-10-29 15:18:01 23760

原创 MATLAB变量

1.MATLAB的特殊常量特殊常量是一些预先定义好的数值变量。含义符号圆周率πpi机器的浮点运算误差限,2.2204e-016eps虚数单位i或j无穷大量inf非数NaN默认结果存储变量(临时变量)ans2.变量的命名规则所有变量都表示一个矩阵或一个向量。变量名有大、小写英文字母、阿拉伯数字和下划线等组成,但第一个必须是英文字母。变量名区分大、小写。变量名不能是MATLAB的命令、函数、M文件名,以免引起逻辑运行错误。

2021-10-27 11:19:33 615

原创 MATLAB概述

1.MATLAB的发展由美国Mathworks公司于1984年正式推出,随后逐次升级。目前通常每年更新两次,例如2018a,2018b。用于数值计算和图形处理的系统环境。MATLAB(MATrix LABoratory)是一种以矩阵运算为基础的交互式程序语言。只有一种数据结构,一种标准的输入输出语句,不需编译。2.MATLAB的优点除具备卓越的数值计算能力外,还提供专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能。每个变量代表一个矩阵;每个元素都看作复数;所有运算都对矩阵和复数有

2021-10-27 11:15:28 2300

原创 树形相关

树形相关对【树】的大概认识树的定义【百度百科上是这样说的】树,木本植物之总名,主要由根、干、枝、叶、花、果组成。树是一种数据结构,它是由n(n>=1)n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:1.每个结点有零个或多个子结点;2.没有父结点的结点称为根结点;3.每一个非根结点有且只有一个父结点;4.除了根结点外,每个子结点可以分为多个不相交的子树树的种类无序树:树中任意节

2021-02-26 13:17:41 274

原创 DP入门

动态规划算法他针对满足特定条件的一类问题,对各状态维度进行分阶段、有顺序、无重复、决策性的遍历求解。dp入门,主要讲解dp里的几个经典的案例,通过案例来感受动态规划的主要思想例题一:数字三角形Description73 88 1 02 7 4 44 5 2 6 5(图一)图一表示一个5行的数字三角形。假设给定一个n行数字三角形,计算出从三角形顶至底的一条路径,使该路径经过的数字总和最大。每一步只能由当前位置向左下或右下。Input你的程序要能接受标准输入。第一行包含一个整数T,表示

2021-02-25 17:11:37 1294

原创 计算几何入门

计算几何基础部分高精度圆周率const double pi = acos(-1.0);偏差值const double eps = 1e-8;sgnint sgn(double x) { // 判断x是否等于0 if (fabs(x) < eps) return 0; else return x < 0 ? -1 : 1;}dcmpint dcmp(double x, double y) { // 比较两个浮点数,0为相等,-1为小于,1为大于 if (fa

2021-02-25 16:28:47 126

原创 DP进阶

动态规划动态规划部分简介动态规划基础记忆化搜索背包DP区间DPDAG上的DP树形DP状压DP数位DP插头DP计数DP动态DP概率DPDP优化其他DP方法构成动态规划算法的三要素:状态阶段决策动态规划求解的三个基本条件:子问题重叠性无后效性最优子结构动态规划的艺术在于状态设计和子结构的挖掘。多年来,学界探讨了诸多DP转移的方法和优化手段,然而如何把问题形式化为状态空间,进一步抽象出DP的状态表示和阶段划分,往往是一件考察智力而非套路的问题。LIS(最长上升子

2021-02-25 15:44:12 254 1

原创 字典树入门

字典树给出N个字符串,再给出M个查询,每个查询给出一个字符串,求这个字符串在给出的N个字符串中有没有出现过。暴力做法:遍历一遍给出的字符串数组,比较两个字符串是否相等。复杂度为O(N*len)使用map的做法:将字符串保存入map中,询问时判断映射的值复杂度为O(logN*len)使用hash的做法:完全不冲突复杂度为O(1),完全冲突复杂度为O(N)字典树介绍:Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种hash表的变形。典型应用是用于存储 、统计和排序大量

2021-02-25 14:13:16 68

原创 单调队列单调栈

单调栈算法单调栈是指一个栈内部的元素是具有严格单调性的一种数据结构,分为单调递增栈和单调递减栈。单调栈算法,借助单调性处理问题的思想在于及时排除不可能的选项,抱持策略集合的高度有限性和秩序性,从而为我们做出决策提供更多的条件和可能方法。例题Feel GoodBill is developing a new mathematical theory for human emotions. His recent investigations are dedicated to studying how g

2021-02-24 19:43:54 127

原创 巴什博奕详解

巴什博弈问题只有一堆 n 个石子,两个人轮流从这堆石子中取物,规定每次至少取一个,最多取 m 个。最后取光者得胜。两人均采用最优方案。分析过程假设双方分别为A,B;且指定A为先手。如果是 n <= m 的情况下:先手A一次即可取完,A必胜。故重点讨论 n > m 的情况当 n = m+1 时:因为A至多取 m 颗,最少取 1 颗;在此情况下B取时必能取完,故B必胜。此时推知 m+1 颗石子组合时,可以保证先手必败:当A取任意 k(1 <= k <= m) 颗时,B

2021-02-20 20:22:49 1152

原创 lca算法思想

lca(least Comment Ancestors,最近公共祖先问题),是指给定一棵有根树,查询LCA(u,v),每次求树中两个顶点u和v的最近公共祖先,即找到一个节点,同时是u和v的祖先,并且深度尽可能的大,入度尽可能的大。一、一般解法一般解法即暴力小跳,同过逐级跳转向上查询,时间复杂度较大。先找到给出节点,并得到他们的入度,使入度较大的节点先跳转至与较小节点同一入度的父节点。然后同时向上查找,直至两者相遇。注意:在这里向上查找都是逐步向上查找的。结束条件:查询到同一节点时。二、跳表解法(

2021-02-04 21:11:48 2474

原创 数论

数论是纯粹数学的分支之一,主要研究整数的性质。按研究方法来看,数论大致可分为初等数论和高等数论。初等数论是用初等方法研究的数论,它的研究方法本质上说,就是利用整数环的整除性质,主要包括整除理论、同余理论、连分数理论。高等数论则包括了更为深刻的数学研究工具。它大致包括代数数论、解析数论、计算数论等等。在竞赛领域常常用到的是数论有关的一些数论基础与定理的运用。...

2021-02-03 21:13:29 156

原创 背包入门

背包问题(Knapsack problem)是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。背包问题有三种类型:一、01背包问题这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。二、完全背包问题这个问题非常类似于01背包问题,所不同的是每种物品有无限件。三、多重背包问题这题目和完全背包问题很类似。基本的方程只需将完全背包问题的

2021-02-02 20:22:47 63

原创 最小生成树

最小生成树是一副连通加权无向图中一棵权值最小的生成树。如果图的边的权值都为正数,那么最小生成树就是该图的所有包含所有顶点的子图中权值最低的子图。主要有两种算法,对应了两种思路。Prim算法Prim算法的每一步都会为一棵生长中的树添加一条边,该树最开始只有一个顶点,然后会添加个边。每次总是添加生长中的树和树中除该生长的树以外的部分形成的切分的具有最小权值的横切边。Kruskal算法按照边的权重顺序(从小到大)将边加入生成树中,但是若加入该边会与生成树形成环则不加入该边。直到树中含有条边为止。这些边组

2021-01-31 21:24:12 150 1

原创 最短路

最短路径是用于计算一个节点到其他所有节点。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。主要有三种算法:一:Floyd-Warshall算法这个算法可以在O(n3)的时间和n2的空间内求出任意两点之间的最短路。void Floyd(){ for(int k = 1; k <= n; k++)//注意,一定要先枚举中转节点保证三角形的情况 for(int i = 1; i <= n; i++) for(int j = 1; j <= n; j++)

2021-01-30 21:53:08 73

原创 Hash表

Hash表可以理解为用数据本身通过Hash函数转换为某个特征值,保存在Hash数组中,从而减少不必要的搜索。在此调取时只需在通过Hash函数找到特征值就可直接访问该数据。将原来的O(n)或O(n^2),变为O(1)Hash函数Hash函数将数据转换为特征值,通常整数采用直接用素数取余,其余通过某些转换之后素数取余。用素数取余的目的,是使是数据分布规则,避免或减少出现特征值得重叠。冲突但是在Hash表中难免会出现冲突的情况,这时就要采用线性或平方法,或者是二重Hash来是特征值向后推移,避免重叠。还

2021-01-29 23:07:11 102

原创 贪心算法

贪心算法贪心法是一种解决问题的策略而不是某种具体的算法,如果策略正确往往能够得到较优或最优解。贪心算法首先是 将一个问题拆解为若干个小问题,在当前的小问题上先找到最优解,再在下一个问题上找到最优解,即每一个小问题上都找到当前的最优解,从而的出该问题的解。但是要注意,贪心法所得解并不一定是最优解,但是如果策略正确,一定较优解!...

2021-01-26 19:28:11 73

原创 线段树与权值线段树

线段树线段树本质上是一种二叉搜索树,它将原数组划为一段段空间,通过一定的关系从而构建出的树。

2021-01-25 22:17:23 124

原创 深搜与广搜

广度优先搜索算法广搜是以广度优先,即在搜索过程中从一个节点先搜索该节点向下的所有节点,以节点所在的层数为搜索顺序的依据,是一层一层向外扩展的搜索方式。实现可通过queue先进先出的特点来满足需求,快速的实现我们的想法深度优先搜索算法深搜对应于广搜即以深度为搜索顺序的依据,在搜索时先按照一条路线走到终点,记录路线,以达到对节点的回溯,最终实现对全部数据的搜索。深搜、广搜都是盲目搜寻法,是对数据全部的搜索,效率不是很高。...

2021-01-23 19:20:24 345

原创 二分算法介绍

二分查找又成对半查找,是一种效率较高的查找方式。二分查找要求查找数据首先按照线性顺序排列,计算中间量,通过判断中间量相对于目标量的关系,来更新收缩范围以达到对目标量的快速查找。二分查找的时间复杂度为O(log n)相对于顺序查找的时间复杂度O(n),正常情况下会大大降低运行效率。对于二分查找有关的有三方面因素控制:左右边界、中间值(r,l,m):对于三者之间的关系是一个动态的联动关系,中间值由左右边界实时更新再由中间值的关系更新左右边界升降序:升降序对二分查找的影响不大,主要体现在对于

2021-01-22 22:46:46 147

原创 并查集概念引入

并查集是一种树形的数据结构,主要用于解决一些集合合并查询的问题。并查集森林是指将数据集合按树形的结构存储,即每一个节点都保存着对应的父节点,当父节点即本身是意味着到达根结点,根节点代表该集合。#并查集优化有两种优化的方法,分别是按秩合并和路径压缩。按秩合并:将较小的树合并的较大的树上,影响运算时间的树的深度,即此处的秩。路径压缩:路径压缩即在原来的树的基础上,直接将原来的节点连接到根节点上,从而减少查找根的次数。但无论是那种方法,都会改变树原有的结构,不能保护原有结构。...

2021-01-21 23:04:37 74

原创 vector,list deque三种容器对比

一、vector与list对比vector: 随机访问快,即下标运算 尾添加,不申请空间的情况下,速度很快 不支持,快速插入和删除,比较慢list: 随机访问慢 支持快速插入和删除二、内存对比vector: 连续空间list: 不连续空间deque: 段连续空间三、功能对比vector: 随机位置插入删除效率很低 随机访问效率高(下标运算) 头添加缓慢不推荐,支持尾添加list: 随机位置插入/删除效率高 随机访问效率慢 支持头添

2021-01-20 20:56:17 189

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除