当前位置: 首页 > news >正文

语言基础2 矩阵和数组

语言基础2  矩阵和数组

矩阵和数组是matlab中信息和数据的基本表示形式    

可以创建常用的数组和网格  合并现有的数组  操作数组的形状和内容  以及使用索引访问数组元素    

用到的函数列表如下

 

一  创建 串联和扩展矩阵

矩阵时按行和列排列的数据元素的二维数据元素的二维矩形数组。

元素可以是数字、逻辑值、日期时间、字符串、categorical、或其他matlab数据类型

>> A=100;
>> whos AName      Size            Bytes  Class     AttributesA         1x1                 8  double              

构建数据矩阵 

>> A=[12 62 93 -8]
A =12    62    93    -8
>> whos AName      Size            Bytes  Class     AttributesA         1x4                32  double            

>> A=[12 62;93 -8]

A =

12 62
93 -8

专用矩阵函数

zeros(n1,n2)     n1行数    n2列数

ones(n1,n2)

>> zeros(2,3)
ans =0     0     00     0     0
>> ones(2,4)
ans =1     1     1     11     1     1     1

diag函数将输入元素放在矩阵的对角线上 

 
>> A = [12 62 93 -8];
B = diag(A)
B =12     0     0     00    62     0     00     0    93     00     0     0    -8

串联矩阵

使用方括号来追加现有矩阵   此方法称为串联

>> A=ones(1,4);
>> B=zeros(1,4);
>> C=[A B]
C =1     1     1     1     0     0     0     0

串联多个矩阵 必须具有兼容的大小,水平串联矩阵时 行数必须相同,垂直串联矩阵,列数必须相同。

串联兼容矩阵的另一种方法时使用串联函数

horzcat   vertcat   cat

使用horzcat将第二个矩阵水平追加到第一个矩阵

>> D=horzcat(A,B)
D =1     1     1     1     0     0     0     0

使用vertcat将两个矩阵垂直连接

>> E=vertcat(A,B)
E =1     1     1     10     0     0     0

生成数值序列

colon   创建由连续且等间距元素组成的矩阵的便捷方式。例如创建一个行向量 其元素是从1到10的整数

>> A=1:10      默认增量为1
A =1     2     3     4     5     6     7     8     9    10
>> A=-2.5:2.5  
A =-2.5000   -1.5000   -0.5000    0.5000    1.5000    2.5000
>> A=0:2:10      指定增量为2
A =0     2     4     6     8    10
>> A=6:-1:0      增量为负值    则递减   
A =6     5     4     3     2     1     0
>> A=1:0.2:2.1    增量为非整形值     如果增量值不能平均分指定的范围   则会在超出范围之前在可以达到的最后一个值处自动结束序列   此处最后为2
A =1.0000    1.2000    1.4000    1.6000    1.8000    2.0000

扩展矩阵

通过想一个或多个元素置于现有行和列索引边界之外,可以将他们添加到矩阵中    matlab会自动用0填充矩阵,使其保持为举行

例如创建一个2x3矩阵   然后在(3,4)的位置插入一个元素   使矩阵增加一行一列

>> A=[10 20 30;60 70 80]     %A 为2x3
A =10    20    3060    70    80  
>> A(3,4)=1     此时(1,3)(2,3) 两个位置为0   此时A为3x4
A =10    20    30     060    70    80     00     0     0     1

还可以通过现有索引范围之外插入新矩阵来扩展其大小

>> A(4:5,5:6)=[2 3;4 5]     执行完成后    A为5x6  矩阵   未赋值的索引位置填0
A =10    20    30     0     0     060    70    80     0     0     00     0     0     1     0     00     0     0     0     2     30     0     0     0     4     5

上例中   A(4,5)=2       A(4,6)=3        A(5,5)=4       A(5,6)=5 

 如果重复扩展矩阵的大小  例如在for循环中,最好要为预计创建的最大矩阵预分配空间,matlab必须在每次大小增加时分配内存,所以时间开销较大。

可以预先生成一个大的全0矩阵  

zeros(10000,10000)    行和列都是10000的矩阵

A=zeros(10000,10000)   如再大  需要再矩阵所以范围之外指定元素或将另一个预分配的矩阵与A串联来进行扩展

空数组

指至少有一个维度的长度等于零的数组  空数组可用于以编程方式表示“无”的概念

案例:

>> A=[1 2 3 4];
>> ind=find(A<0)
ind =空的 1×0 double 行向量

许多算法都包含可以返回空数组的函数调用  允许将空数组作为函数参数传递  而不是作为特殊情况处理。

需要自定义空数组的处理方式  可以使用isempty  函数来检查它们

TF=isempty(ind)

TF=logical

1   返回真值

数组索引

  根据元素在数组中的位置(索引)访问数组元素的方法主要有三种:按位置索引、线性索引和逻辑索引。

按元素的位置进行索引

  指定向量中的单个元素  : A(3,2)   行列式的方式   先给行号  再给列号

指定向量中的多个元素:A()

A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]
a1=A(3,2)      %3行2列   索引对应的值     
a2=A(2,[1 3])    %A(2,1)      A(2,3)
a3=A(1:3,2:4)    %  访问第一到第三行、第二到第四列中的元素
a4=A(1:3,2:end)   %end为最后一列
a5=A(:,3)%:表示所有行或所有列    此处表示所有行的第3列 全部数据输出:
A =1     2     3     45     6     7     89    10    11    1213    14    15    16
a1 =10
a2 =5     7
a3 =2     3     46     7     810    11    12
a4 =2     3     46     7     810    11    12
a5 =371115

通过索引来访问matlab中任何数组的元素  而不管其数据类型或维度如何   例如  直接访问datetime数组的列

datetime数组  

>> datetime(2018,1:5,1)   %详情参考 datetime()函数详情
ans = 1×5 datetime 数组2018-01-01   2018-02-01   2018-03-01   2018-04-01   2018-05-01
>> datetime(2018,1,1:5)
ans = 1×5 datetime 数组2018-01-01   2018-01-02   2018-01-03   2018-01-04   2018-01-05

使用单个索引进行索引

线性索引   实际上数据实际的存储方式都是按内存列式存储

>> A=[12 36 91;45 29 48;33 25 11]
A =12    36    9145    29    4833    25    11
>> Alinear=A(:)   %显示全部
Alinear =124533362925914811
>> A(6)     按列序   定值
ans =25
>> A(3,2)   按二维数组坐标索引定值
ans =25

>> s=sum(A(:))
s =
330

sub2ind 和 ind2sub  函数可用于在数组的原始索引和线性索引之间进行转换    例如计算A的第3,2个元素的线性索引。

>> linearidx=sub2ind(size(A),3,2)     %  将行,列的形式转换为线性索引单列的形式   所以(3,2)对应单列为6     返回值为6
linearidx =6
>> [row,col]=ind2sub(size(A),6)       %  将单列的线性索引形式转换为行,列定位的形式    返回2个输出的变量  
row =3
col =2

使用逻辑值进行索引

使用true和false  逻辑指示符也可以对数组进行索引   在处理条件语句时尤其便利。

例如 假设想知道A中的元素是否小于另一个矩阵B中的对应元素

当A中的元素小于B中的对应元素时,小于号运算符返回元素为1的逻辑数组。

>> A=[1 2 6;4 3 6] 
A =1     2     64     3     6
>> B=[0 3 7;3 7 5]
B =0     3     73     7     5
>> ind=A<B         %判断A和B的各个对应元素   是否满足小于关系   是为1     否为0
ind =2×3 logical 数组0   1   10   1   0

上例中得到了满足条件的元素的位置;

已经可以使用ind作为索引数组来检查各个值

matlab 将ind中值1的位置与A和B中的对应元素进行匹配,并在列向量中列出它们的值。

>> Avals=A(ind)  列出A中的值
Avals =236
>> Bvals=B(ind)   列出B中的值
Bvals =377

is函数还返回逻辑数组   指示输入中的哪些元素满足特定条件。

ismissing函数检查string向量中的哪些元素时缺失值。

>> str=["A" "B" missing "D" "E" missing];
>> ind=ismissing(str)    返回一个索引数组    对应值为1的索引位置的字符缺失  原字符数组中包含missing的索引位置为1  其余为0
ind =1×6 logical 数组   0   0   1   0   0   1

假设要查找非缺失值元素的值   将~运算符和索引向量ind结合使用即可实现此目的

>> strvals=str(~ind)                 %
strvals = 1×4 string 数组"A"    "B"    "D"    "E"

                               查找符合条件的数组元素

通过对数组应用条件来过滤数组元素。

检查矩阵中的偶数元素、查找多维数组中所有0值的位置,或者替换数据中的NaN值。

通过组合使用关系运算符和逻辑运算符来执行这些任务。

>   <   <=    ==    ~=       逻辑运算符   and   or    not 分别用&    |   ~表示   从而应用多个条件。

应用单个条件

rng default           创建一个5x5矩阵   元素为位于1和15之间的随机整数   
A=randi(15,5)     randi(imax,n)   返回5x5矩阵  其中包含从区间[1,imax]的均匀离散分布中得到的伪随机整数
A =
    13     2     3     3    1014     5    15     7     12     9    15    14    1314    15     8    12    1510    15    13    15    11
>> B=A<9      使用小于号关系运算符  确定A中的哪些元素小于9     将结果存储在B中
B =5×5 logical 数组0   1   1   1   00   1   0   1   11   0   0   0   00   0   1   0   00   0   0   0   0     B为逻辑矩阵   每个值都表示为逻辑值的状态   符合的元素索引位置为1   否则为0 假
>> A(B)      B中不会指出这些元素的具体值是多少    但是可以使用B创建A的索引   从而得出满足条件的值
ans =        以列的形式展示出来22538371

由于B为逻辑矩阵   所以上面的运算称为逻辑索引

有时某些问题需要符合条件的数组元素的位置信息  而非其实际值。

案例可以使用find函数来查找A中小于9的所有元素

>> I=find(A<9)
I =3671114161722    返回的是一个由线型索引组成的列向量  每个索引描述A中一个小于9的元素的位置  因此实际上A(I)与A(B)返回的结果相同
差别为A(B) 使用逻辑索引    而A(I)使用线性索引

应用多个条件

使用and  or  not  运算符将任意多个条件应用于一个数组;条件的数量并不局限于一个或两个。

首先,使用逻辑and运算符  由&表示  指定两个条件:元素必须小于9且大于2     将这些条件指定为逻辑索引  以查看符合两个条件的元素。

>> A(A<9 & A>2)
ans =53837

结果为A中同时符合这两个条件的元素的列表。

务必使用单独的语句指定每个条件,并用逻辑运算符连接起来。

例如:

不能通过A(2<A<9)指定以上条件,因为其计算结果为A(2<A|A<9).

接下来,查找A中小于9且为偶数的元素。

>> A(A<9&~mod(A,2))
ans =228   线型排序  列向     显示A中小于9的所有偶数元素的列表    使用逻辑NOT运算符~将矩阵mod(A,2)转换为逻辑矩阵
并在可被2整除的元素位置防止逻辑值1  true

案例2:

查找A中小于9   为偶数且不等于2的元素

>>  A(A<9&~mod(A,2)&A~=2)     返回具体的值
ans =8
>> find(A<9&~mod(A,2)&A~=2)    返回元素所在的位置   索引   线性索引
ans =   14                         即A(14)=8

替换符合条件的值

同时更改多个现有数组元素的值会很有用。将逻辑索引与简单的赋值语句一起使用,可替换数组中符合条件的值。

将A中所有大于10的所有值替换为数值10

>> A(A>10)=10
A =10     2     3     3    1010     5    10     7     12     9    10    10    1010    10     8    10    1010    10    10    10    10
>> 
>> A(A~=10)=NaN           %将A中不等于10的所有值替换为NaN值
A =10   NaN   NaN   NaN    1010   NaN    10   NaN   NaNNaN   NaN    10    10    1010    10   NaN    10    1010    10    10    10    10
>> A(isnan(A))=0;       将A中所有NaN值替换为0   并应用逻辑NOT运算符 ~A
>> C=~A

C =
5×5 logical 数组
0 1 1 1 0
0 1 0 1 1
1 1 0 0 0
0 0 1 0 0
0 0 0 0 0

生成矩阵用逻辑值1 替代NaN值   用逻辑值0取代10   逻辑NOT运算~A将数值数组转换为逻辑数组,因此A&C返回逻辑值0 的矩阵    A|C返回逻辑值1的矩阵。

相关文章:

语言基础2 矩阵和数组

语言基础2 矩阵和数组 矩阵和数组是matlab中信息和数据的基本表示形式 可以创建常用的数组和网格 合并现有的数组 操作数组的形状和内容 以及使用索引访问数组元素 用到的函数列表如下 一 创建 串联和扩展矩阵 矩阵时按行和列排列的数据元素的二维数据元素的二维矩…...

springMVC中过滤器抛出异常,自定义异常捕获

在过滤器中引入org.springframework.web.servlet.HandlerExceptionResolver AutowiredQualifier("handlerExceptionResolver")private HandlerExceptionResolver resolver; // doFilter中处理if (条件1) {if (条件2) {resolver.resolveException(request, response, …...

图像检索技术研究:深度度量与深度散列在相似性学习中的应用比较与实践 - 使用Python与Jupyter环境

引言 在计算机视觉领域&#xff0c;图像检索是一个长期存在并持续受到研究者关注的重要话题。随着大数据时代的到来&#xff0c;如何高效、准确地从海量数据中检索到相似的图像成为一个巨大的挑战。传统的检索方法在大数据环境下表现不佳&#xff0c;而深度学习技术的崛起为图…...

CSS加载失败的6个原因

有很多刚刚接触 CSS 的新手有时会遇到 CSS 加载失败这个问题&#xff0c;但测试时&#xff0c;网页上没有显示该样式的问题&#xff0c;这就说明 CSS 加载失败了。出现这种状况一般是因为的 CSS 路径书写错&#xff0c;或者是在浏览器中禁止掉了 CSS 的加载&#xff0c;可以重新…...

react之路由的安装与使用

一、路由安装 路由官网2021.11月初&#xff0c;react-router 更新到 v6 版本。使用最广泛的 v5 版本的使用 npm i react-router-dom5.3.0二、路由使用 2.1 路由的简单使用 第一步 在根目录下 创建 views 文件夹 ,用于放置路由页面 films.js示例代码 export default functio…...

基于RoCE的应用程序的MTU注意事项

目录 基于RoCE的应用程序的MTU注意事项 探测网络中的MTU设置 概要 原文 MTU测试结果 DOC: CentOS安装tshark抓包工具 基于RoCE的应用程序的MTU注意事项 原文&#xff1a;https://support.mellanox.com/s/article/MLNX2-117-1682kn InfiniBand协议最大传输单元&#xff…...

springboot集成Graphql相关问题汇总

1、idea在debug运行时出现java.lang.NoClassDefFoundError:kotlin/collections/AbstractMutableMap 解决&#xff1a;禁用idea dubugger中kotlin coroutine agent 见&#xff1a;https://stackoverflow.com/questions/70796177/after-the-spring-boot-source-code-is-compile…...

Angular16的路由守卫基础使用

Angular16的路由守卫基础使用 使用ng generate guard /guard/login命令生成guard文件因新版Angular取消了CanActivate的使用&#xff0c;改用CanActivateFn&#xff0c;因此使用router跳转需要通过inject的方式导入。 import { inject } from angular/core; import { CanActi…...

leetcode228. 汇总区间

题目 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c;nums 的每个元素都恰好被某个区间范围所覆盖&#xff0c;并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区间范围 [a,b]…...

删除有序链表中重复的元素-II(链表)

乌&#xff01;蒙&#xff01;山&#xff01;连&#xff01;着&#xff01;山&#xff01;外&#xff01;山&#xff01; 题目&#xff1a; 思路&#xff1a; 双指针&#xff0c;slow和fast&#xff0c;并且增加标记flag初始为1。 如果slow指向节点值等于fast指向节点值&…...

element单独检验form表单中的一项

<el-form-item prop"limitDays" style"margin-left: 5px;"><el-input v-model"ruleForm.limitDays" placeholder"天数" style"width: 100px;" /> </el-form-item> <el-form-item prop"limitCount…...

Webpack node、output.jsonpFunction 配置详解

Webpack node、output.jsonpFunction 配置详解 最近尝试给一些用到 webpack 的项目升级到最新 webpack5 版本&#xff0c;其中遇到了一些问题&#xff0c;我挑了两个比较典型的问题&#xff0c;其中主要涉及到了 webpack 的 node 属性跟 output.jsonpFunction &#xff08;web…...

要跟静音开关说再见了!iPhone15新变革,Action按钮引领方向

有很多传言称iPhone 15 Pro会有很多变化&#xff0c;但其中一个变化可能意味着iPhone体验从第一天起就有的一项功能的终结。我说的是静音开关&#xff0c;它可以让你轻松地打开或关闭iPhone的铃声。 根据越来越多的传言&#xff0c;iPhone 15 Pro和iPhone 15 Pro Max将拆除静音…...

论文笔记 Graph Attention Networks

2018 ICLR 1 intro 1.1. GCN的不足 无法完成inductive任务 inductive任务是指&#xff1a; 训练阶段与测试阶段需要处理的graph不同。通常是训练阶段只是在子图上进行&#xff0c;测试阶段需要处理未知的顶点。GGN 的参数依赖于邻接矩阵A/拉普拉斯矩阵L&#xff0c;所以换了…...

看上去就很像的agree和degree有什么联系

“Agree”&#xff08;同意&#xff09;和 “degree”&#xff08;程度&#xff09;这两个词在语义上没有直接的联系&#xff0c;它们代表不同的概念。 “Agree” 意味着在意见、观点或立场上达成共识或一致。它表示同意或同意某人或某事。 例如&#xff1a; “We all agree…...

2023前端面试题第二弹(真实,一般人我还不给看)

为什么要初始化css&#xff1f; 避免浏览器差异&#xff0c;解决兼容问题 网格布局 display: grid; grid-template-columns: 1fr 1fr 1fr less的优点 可以兼容&#xff0c;可以嵌套&#xff0c;循环&#xff0c;运算&#xff0c;定义变量和继承样式&#xff08;extend&#xff…...

零基础如何学习 Web 安全,如何让普通人快速入门网络安全?

前言 网络安全现在是朝阳行业&#xff0c;缺口是很大。不过网络安全行业就是需要技术很多的人达不到企业要求才导致人才缺口大 【一一帮助安全学习&#xff08;网络安全面试题学习路线视频教程工具&#xff09;一一】 初级的现在有很多的运维人员转网络安全&#xff0c;初级…...

安全学习DAY18_信息打点-APP资产搜集

信息打点-APP资产&静态提取&动态抓包&动态调试 文章目录 信息打点-APP资产&静态提取&动态抓包&动态调试本节知识&思维导图本节使用到的链接&工具 如何获取目标APP从名称中获取APP从URL获取APP APP搜集资产信息APP提取信息分类信息提取方式信息…...

react 矩形波浪

"矩形波浪"&#xff08;Square Wave&#xff09;在信号处理和波形生成中是一种特殊类型的波形&#xff0c;通常由两个不同的值交替组成&#xff0c;一个是高电平&#xff0c;另一个是低电平&#xff0c;形成类似方波的波形。在 React 中创建一个矩形波浪的效果可以通…...

【GitHub】Pycharm本地项目打包上传到Github仓库的操作步骤

文章目录 1、Pycharm端的设置操作2、Github端的设置操作3、Pycharm上配置Github4、Git本地项目至GitHub仓库5、前往Github中查看确认6、常见报错 1、Pycharm端的设置操作 通过CtrlAltS快捷组合键的方式&#xff0c;打开设置&#xff0c;导航到版本控制一栏中的Git&#xff0c;…...

计算机网络基础

前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页&#xff1a;KC老衲爱尼姑的博客主页 博主的github&#xff0c;平常所写代码皆在于此 共勉&#xff1a;talk is cheap, show me the code 作者是爪哇岛的新手&#xff0c;水平很有限&…...

【图像分类】基于LIME的CNN 图像分类研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

回归预测 | MATLAB实现TSO-SVM金枪鱼群算法优化支持向量机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现TSO-SVM金枪鱼群算法优化支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现TSO-SVM金枪鱼群算法优化支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览基…...

Pixar、Adobe 和苹果等成立 OpenUSD 联盟推行 3D 内容开放标准

导读Pixar、Adobe、Apple、Autodesk 与 NVIDIA 联手 Linux 基金会旗下的联合开发基金会&#xff08;JDF&#xff09;宣布建立 OpenUSD 联盟&#xff08;AOUSD&#xff09;以推行 Pixar 创建的通用场景描述技术的标准化、开发、进化和发展。 联盟寻求通过推进开放式通用场景描述…...

ansible剧本之role角色模块

role角色 一&#xff1a;Roles 模块1.roles 的目录结构&#xff1a;2.roles 内各目录含义解释3.在一个 playbook 中使用 roles 的步骤&#xff1a;&#xff08;1&#xff09;创建以 roles 命名的目录&#xff08;2&#xff09;创建全局变量目录&#xff08;可选&#xff09;&am…...

网络安全领域的常见攻击方式及防御手段

目录 重放攻击&#xff08;Replay Attack&#xff09;防御手段 SQL 注入&#xff08;SQL Injection&#xff09;防御手段 跨站脚本攻击&#xff08;Cross-Site Scripting&#xff0c;XSS&#xff09;防御手段 跨站请求伪造&#xff08;Cross-Site Request Forgery&#xff0c;C…...

Python应用工具-Jupyter Notebook

工具简介 Jupyter Notebook是 基于 网页的用于交互计算的 应用程序&#xff0c;以网页的形式打开&#xff0c;可以在网页页面中直接编写代码和运行代码&#xff0c;代码的运行结果也会直接在代码块下 显示&#xff0c;文档是保存为后缀名为 . ipynb 的 JSON 格式文件。 操作指令…...

音视频 FFmpeg如何查询命令帮助文档

FFmpeg如何查询命令帮助文档 一、ffmpeg/ffplay/ffprobe区别二、ffmpeg命令查看帮助文档三、ffplay命令查看帮助文档四、ffprobe命令查看帮助文档注意 一、ffmpeg/ffplay/ffprobe区别 ffmpeg:超快音视频编码器ffplay:简单媒体播放器ffprobe:简单多媒体流分析器 二、ffmpeg命令…...

回归预测 | MATLAB实现CSO-SVM布谷鸟优化算法优化支持向量机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现CSO-SVM布谷鸟优化算法优化支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现CSO-SVM布谷鸟优化算法优化支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一…...

元宇宙电商—NFG系统:区块链技术助力商品确权。

在国内&#xff0c;以“数字藏品”之名崛起以来&#xff0c;其与NFT的对比就从未停歇。从上链模式到数据主权&#xff0c;从炒作需求到实际应用&#xff0c;从售卖形式到价值属性&#xff0c;在各种抽丝剥茧般的比较中&#xff0c;围绕两者孰优孰劣的讨论不绝于耳。 NFT的每一…...

【云原生】Docker基本原理及镜像管理

目录 一、Docker概述 1.1 IT架构的演进&#xff1a; 1.2 Docker初始 1.3 容器的特点 1.4 Docker容器与虚拟机的区别 1.5 容器在内核中支持2种重要技术 1.6 Docker核心概念 1&#xff09;镜像 2&#xff09;容器 3&#xff09;仓库 二、安装Docker 2.1 Yum安装Docker…...

Apache Doris大规模数据使用指南

目录 发展历史 架构介绍 弹性MPP架构-极简架构 逻辑架构 基本访问架构 分区 创建单分区表...

RabbitMQ 持久化

通过持久化可以尽量防止在RabbitMQ异常情况下&#xff08;重启、关闭、宕机&#xff09;的数据丢失。持久化技术是解决消息存储到队列后的丢失问题&#xff0c;但是通过持久化并不能完全保证消息不丢失。 持久化 交换机持久化队列持久化消息持久化总结 持久化技术可以分为交换机…...

STM32 定时器复习

12MHz晶振的机器周期是1us&#xff0c;因为单片机的一个机器周期由6个状态周期组成&#xff0c;1个机器周期6个状态周期12个时钟周期&#xff0c;因此机器周期为1us。 51单片机常用 for(){__nop(); //执行一个机器周期&#xff0c;若想循环n us&#xff0c;则循环n次。 }软件…...

17-工程化开发 脚手架 Vue CLI

开发Vue的两种方式: 1.核心包传统开发模式: 基于 html/css /js 文件&#xff0c;直接引入核心包&#xff0c;开发 Vue。 2.工程化开发模式: 基于构建工具 (例如: webpack)的环境中开发 Vue。 问题: 1. webpack 配置不简单 2. 雷同的基础配置 3. 缺乏统…...

golang 分布式微服务DAO层构建

构建云原生项目的dao层 配置读写分离的mysql集群 1. 编写yml配置文件 搭建一主二从的mysql集群、单机redis db.yml mysql:source: # 主数据库driverName: mysqlhost: 127.0.0.1port: 3309database: db_tiktokusername: tiktokDBpassword: tiktokDBcharset: utf8mb4replica1…...

Java 项目日志实例:LogBack

点击下方关注我&#xff0c;然后右上角点击...“设为星标”&#xff0c;就能第一时间收到更新推送啦~~~ LogBack 和 Log4j 都是开源日记工具库&#xff0c;LogBack 是 Log4j 的改良版本&#xff0c;比 Log4j 拥有更多的特性&#xff0c;同时也带来很大性能提升。LogBack 官方建…...

什么是条件get方法?

条件GET方法通常指的是HTTP协议中的"GET"请求&#xff0c;但它带有一些条件&#xff0c;这些条件用于控制服务器是否应该返回请求的资源。这些条件通常使用HTTP标头字段来指定&#xff0c;以便客户端可以告诉服务器在某些条件下是否需要新的或更新的资源。 条件GET方…...

Python爬虫——scrapy_crawlspider读书网

创建crawlspider爬虫文件&#xff1a; scrapy genspider -t crawl 爬虫文件名 爬取的域名scrapy genspider -t crawl read https://www.dushu.com/book/1206.htmlLinkExtractor 链接提取器通过它&#xff0c;Spider可以知道从爬取的页面中提取出哪些链接&#xff0c;提取出的链…...

Spring源码编译-for mac

超详细的spring源码编译 记&#xff1a;编译成功时间&#xff1a;2023.08.19 环境准备&#xff1a; 1.idea 2023.1.1 Community Edition 2.jdk1.8 3.gradlegradle-5.6.4 4.spring源码(版本&#xff1a;spring-framework-v5.2.25.RELEASE) 一.spring源码下载 github 加速网站&…...

视频汇聚平台EasyCVR安防监控视频汇聚平台的FLV视频流在VLC中无法播放的问题解决方案

众所周知&#xff0c;TSINGSEE青犀视频汇聚平台EasyCVR可支持多协议方式接入&#xff0c;包括主流标准协议国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。在视频流的处理与分发上&#xff0c;视频监控…...

中间件:RocketMQ安装部署

单机部署 下载 cd /opt/soft/archive wget https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip unzip -d ../ rocketmq-all-4.9.4-bin-release.zip配置 broker.conf 的brokerIP1 为公网ip 启动命令&#xff1a; nohup sh bin/mqnamesrv &a…...

leetcode-动态规划-42-接雨水

题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,3,2,1…...

[静态时序分析简明教程(十一)]浅议tcl语言

静态时序分析简明教程-浅议tcl语言 一、写在前面1.1 快速导航链接 二、Tcl基础知识三、Tcl的语言结构3.1 Tcl变量3.2 Tcl表达式与运算符3.3 Tcl的控制流语句3.3.1 列表遍历3.3.2 决策3.3.3 Tcl循环3.3.4 Tcl过程 3.4 其他Tcl命令3.4.1 open/close3.4.2 gets/puts3.4.3 catch3.4…...

大数据-玩转数据-Flink 网站UV统计

一、说明 在实际应用中&#xff0c;我们往往会关注&#xff0c;到底有多少不同的用户访问了网站&#xff0c;所以另外一个统计流量的重要指标是网站的独立访客数&#xff08;Unique Visitor&#xff0c;UV&#xff09;。 二、数据准备 package com.lyh.flink06;import lombo…...

3分钟了解下cwnd和TCP拥塞控制算法

文章首发地址 cwnd是什么&#xff1f; cwnd是TCP拥塞控制中的一个重要概念&#xff0c;全称为“congestion window”&#xff0c;也被称为拥塞窗口。它用于限制发送方向网络发送数据的速度&#xff0c;以避免网络拥塞。cwnd是一个动态的值&#xff0c;可以根据网络状况动态调…...

设计模式之状态模式(State)的C++实现

1、状态模式的提出 在组件功能开发过程中&#xff0c;某些对象的状态经常面临变化&#xff0c;不同的状态&#xff0c;其对象的操作行为不同。比如根据状态写的if else条件情况&#xff0c;且这种条件变化是经常变化的&#xff0c;这样的代码不易维护。可以使用状态模式解决这…...

无涯教程-TensorFlow - Keras

Keras易于学习的高级Python库&#xff0c;可在TensorFlow框架上运行&#xff0c;它的重点是理解深度学习技术&#xff0c;如为神经网络创建层&#xff0c;以维护形状和数学细节的概念。框架的创建可以分为以下两种类型- 顺序API功能API 无涯教程将使用Jupyter Notebook执行和…...

使用SSH隧道将Ubuntu云服务器Jupyter Notebook端口映射到本地

本文主要实现了在Ubuntu云服务器后台运行Jupyter Notebook&#xff0c;并使用SSH隧道将服务器端口映射到本地 1. 生成配置文件 运行以下命令生成Jupyter Notebook的配置文件&#xff1a; jupyter notebook --generate-config这将在用户主目录下生成一个名为.jupyter的文件夹&…...

Keepalived+LVS部署高可用集群

文章目录 KeepalivedLVS(DR)部署高可用Web集群集群环境MASTER配置BACKUP配置检查Virtual IP是否漂移IPVS检查MASTERBACKUP Real Server配置附上个人写的小脚本 测试停用Real Server某一台的Apache服务停用Master上的keepalived检测Backup是否接管资源 KeepalivedLVS(DR)部署高可…...