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

【R语言】函数

一、函数格式

如下所示:

  • hello:函数名;
  • function:定义的R对象是函数而不是其它变量;
  • ():函数的输入参数,可以为空,也可以包含参数;
  • {}:函数体,如果函数体只有一行,可以省略{}。
hello <- function() {out <- "hello, ning."return(out)
}
hello()

二、函数参数

函数参数可以是变量中的任何一种:向量、矩阵、数据框、列表、因子、逻辑值等。

1、缺省参数

缺省参数是在函数参数声明中对函数的某个参数指定的默认值。此处不过多赘述。

2、额外参数

R语言中称之为点点点(...)参数。额外参数允许函数具有除函数体所需输入参数之外的其它参数,并且不需要在函数参数声明中一一指定,具有很大的灵活性。

额外参数可以解决函数参数不确定或需要引用其它函数输出值作为输入参数的问题。

hello <- function(name = NULL, ...){out <- paste("你好," name)return(out)
}
hello(name = "R", extra = "Python")
hello()

三、函数返回值

 函数返回值可以是任何R语言对象。

  • 函数最后一行代码如果不是进行变量赋值的话,那么最后一行代码的运行值会自动返回。
  • 使用return命令清晰指定需要返回的值,并告知函数退出运行。

四、函数调用

R函数有两种调用方式:

  • 最常见的是通过函数名称调用;
  • 其次是通过 do.call()函数 形式,使用此方法时,需要先指定被调用函数的名称,然后以列表形式指定被调用函数的参数值。

如下示例为第二种调用方式:

do.call(what = hello, args = list(name = "R"))

五、常用R函数

1、文件操作函数

查看目录和文件函数

getwd():查看当前工作目录

list.dirs(path=getwd(),full.names=F):查看当前目录或指定目录的子目录

dir():查看当前子目录

list.dir():查看当前子目录的文件

file.info(list.files(),extra_cols=F):查看当前目录的子目录及文件的详细信息

file.mode(list.files()):查看当前目录及文件权限信息

file.mtime(list.files()):查看当前目录及文件最近一次修改信息

file.size(list.files()):查看当前目录及文件大小

system("tree"):查看目录结构。

检查目录和文件函数

file.exists():查看文件是否存在

file_test(op=“-d”, x="wn"):查看wn是否是目录

file_test(op="-f", x = "wn.txt"):查看wn.txt是否是文件

创建目录和文件函数

path.expand():将输入文件目录替换为当前系统平台支持的文件目录

file.create():创建空白文件

dir.create():创建空白目录

变更目录和文件函数

file.copy(from="test.R", to="test",overwrite=T,recursive=T):赋值文件test.R到test文件夹里。

file.name(from="test.R", to="test1.R"):将文件test.R重命名为test1.R

file.append(file1="test.R", file2="test1.R"):将test.R追加到test1.R中

删除目录和文件函数

file.remove(c("test1.R","test.R")):删除文件test1.R和test.R

unlink("test",recursive=T):删除test文件夹及其子文件夹

2、计算函数

四则运算函数

x <- 20
y <- 47
# 加法
x + y
# 减法
x - y
# 乘法
x * y
# 除法
x / y
# 取余数
y %% x
# 取绝对值
abx(-y)

数学计算函数

x <- 3
y <- 2
# 幂运算
x ^ y
x ^ -y
x ^ (1/y)
# 对数
log(x, base = 2)
# 平方根
sqrt(y)

比较函数

x <- 7
y <- 6
# 等于与不等于
x == y
x != y
# 大于、大于等于、小于、小于等于
x > y
x >= y
x < y
x <= y
# 是否为真
isTRUE(x != y)
# 是否为假
isFALSE(x == y)

向量比较

x <- c(0,0,1)
y <- c(1,1,0)
# 向量的和条件比较
x & y
# x向量和y向量的第一个分量的和条件比较
x && y
# 或条件比较
xor(x,y)
x | y

约数函数

取整、向上取整、向下取整、四舍五入

x <- 2.33333
# 取整
trunc(x)
# 向上取整
ceiling(x)
# 向下取整
floor(x)
# 四舍五入
round(x)

向量计算函数

标准差、方差、全距、连乘、累加、累乘、秩次、排序、中位数、分位数

x <- seq(from=1, to=10, by = 2)
# 求和、平均值、最大值、最小值
sum(x)
mean(x)
max(x)
min(x)
# 求标准差、方差、全距
sd(x)
var(x)
range(x)
# 求连乘、累加、累乘
prod(x)
cumsum(x)
cumprod(x)
# 求秩次、排序、中位数和分位数
rank(x)
order(x, decreasing = T)
sort(x, decreasing = T)
median(x)
quantile(x)

集合计算函数

x <- seq(from = 1, to = 10, by = 1)
y <- seq(from = 1, to = 20, by = 2)
# 求交集
intersect(x,y)
# 求并集
union(x,y)
# 求差集
setdiff(x,y)
# 判断是否相等
setequal(x,y)
# 求取y的唯一值
unique(y)
# 查找y中大于8的元素索引
which(y >= 8)
# 查找x在y中存在的元素索引
which(is.element(x,y))

3、概率分布函数

主要包括正态分布、均匀分布、指数分布、Gamma分布、Beta分布、t分布、F分布、卡方分布

正态分布

随机数生成函数、概率密度函数和累积分布函数。

# 随机生成30个平均数为0,标准差为1的正态分布随机数
x <- rnorm(n = 30, mean = 0, sd = 1)
# 求正态向量x的概率密度函数值
dnorm(x, mean = 0, sd = 1)
# 求正态向量x的累积分布函数值
pnorm(x, mean = 0, sd = 1)

均匀分布

随机数生成函数、概率密度函数和累积分布函数。

# 生成20个0~100,并服从均匀分布的随机数
x <- runif(n = 20, min = 0, max = 100)
# 求服从均匀分布向量x的概率密度函数值
dunif(x, min = 0, max = 100)
# 求服从均匀分布向量x的累积分布函数值
punif(x, min = 0, max = 100)

指数分布

 随机数生成函数、概率密度函数和累积分布函数。

# 生成10个服从指数分布e(0.5)的随机数
x <- rexp(n = 10, rate = 0.5)
# 求服从指数分布e(0.5)向量x的概率密度函数值
dexp(x, rate = 0.5)
# 求服从指数分布e(0.5)向量x的累积分布函数值
pexp(x, rate = 0.5)

Gamma分布

随机数生成函数、概率密度函数和累积分布函数

# 生成10个服从形状参数为5,尺度参数为3的gamma分布随机数
x <- rgamma(n = 10, shape = 5, scale = 3)
# 求gamma分布向量x的概率密度函数值
dgamma(x, shape = 5, scale = 3)
# 求gamma分布向量x的累积分布函数值
pgamma(x, shape = 5, scale = 3)

Beta分布

随机数生成函数、概率密度函数和累积分布函数

# 生成10个服从形状参数分别为2的beta分布随机数
x <- rbeta(n = 10, shape1 = 2, shape2 = 2)
# 求beta分布向量x的概率密度函数值
dbeta(x, shape1 = 2, shape2 = 2)
# 求beta分布向量x的累积分布函数值
pbeta(x, shape1 = 2, shape2 = 2)

t分布

随机数生成函数、概率密度函数和累积分布函数

# 生成10个服从自由度为3的t分布随机数
x <- rt(n = 10, df = 3)
# 求t分布向量x的概率密度函数值
dt(x, df = 3)
# 求t分布向量x的累积分布函数值
pt(x, df = 3)

F分布

随机数生成函数、概率密度函数和累积分布函数

# 生成10个服从自由度分别为3和7的F分布随机数
x <- rf(n = 10, df1 = 3, df2 = 7)
# 求F分布向量x的概率密度函数值
df(x, df1 = 3, df2 = 7)
# 求F分布向量x的累积分布函数值
pf(x, df1 = 3, df2 = 7)

卡方分布

随机数生成函数、概率密度函数和累积分布函数

# 生成10个服从自由度为7的卡方分布随机数
x <- rchisq(n = 10, df = 7)
# 求卡方分布向量x的概率密度函数值
dchisq(x, df = 7)
# 求卡方分布向量x的累积分布函数值
pchisq(x, df = 7)

4、字符处理函数

字符串长度计算、拼接和拆分

# 求取字符串的长度
nchar("R语言的用处大吗?")
# 拼接字符串
paste("R语言", "Python语言", sep = "", collapse = "")
paste0("R语言", "Python语言", collapse = "")
# 拆分字符串
strsplit(x = "a;b;c;d;f;h", split = ";", fixed = T)

字符串的查找、抽取和替换

函数参数说明:

  • pattern:需要查找、抽取或替换的字符模式,参数值可以是字符串或正则表达式;
  • fixed:决定将pattern参数设定为字符串还是正则表达式,默认为FALSE,即pattern为正则表达式;
  • useBytes:决定是逐字符进行匹配还是根据字符进行匹配,默认为逐字符进行匹配;
  • ignore.case:在英文字符模式匹配下是否区分大小写,默认为FALSE,即区分大小写;
  • perl:是否使用与perl语言兼容的正则表达式,默认为FALSE,即不使用。
x <- c("R语言好", "Python语言也不错", "学习R语言", "你喜欢R语言吗?","Ren")# 查找字符串向量x中包含“R语言”的字符并显示出其标号
grep(pattern = "R语言", x = x, ignore.case = F, perl = F, value = F, fixed = FALSE, useBytes = F, invert = F)
# 查找字符串向量x中包含“R语言”的字符并返回逻辑值
grepl(pattern = "R语言", x = x, ignore.case = F, perl = F, fixed = FALSE, useBytes = F)
# 抽取字符串向量x中的第1个字符至第3个字符
substr(x = x, start = 1, stop = 3)
# 将字符串向量x中的“R语言”替换成"r语言"
sub(pattern = "R语言", replacement = "r语言", x = x, ignore.case = F, perl = F, fixed = F, useBytes = F)

正则表达式

元字符

[ ]:匹配括号内任意字符

# 查找x向量中包含“R语言”中任一字符的字符并返回其下标
grep(pattern="[R语言]", x=x)

\:转义字符,将元字符转义成普通字符用

# 将元字符转义成普通字符
strsplit(x="R语言.数据分析.数据挖掘", split="\.")

^:匹配字符串的开始,若将其置于“[]”内的首位,则表示取反义。

# 查找向量x中第一个字符包含"R"的字符并返回其下标
grep(pattern="^R", x=x)
# 查找向量x中不包含“R”的字符并返回其下标
grep(pattern="[^R]", x=x)

$:匹配字符串的结束,如果将其置于“[]”内,则表示匹配字符“$”

# 查找向量x中最后一个字符包含“R”的字符并返回其下标
grep(pattern="R$",x=x)
# 查找向量x中包含“R$”的字符并返回其下标
grep(pattern="[R$]",x=x)

.:匹配换行符以外的任意字符,如果将其置于“[]”内,则表示匹配“.”字符。

# 查找向量x中的任意字符并返回其下标
grep(pattern=".", x=x)
# 查找向量x中包含“.”的字符并返回其下标
grep(pattern="[.]", x=x)

|:或者

# 查找向量x中包含“R语言”或“Python”的字符并返回其下标
grep(pattern= "R语言|Python", x=x)

():表示字符组,括号内的字符串作为一个整体被匹配

# 查找向量x中的包含“R语言”的字符并返回其下标
grep(pattern="(R语言)", x=x)

*:匹配零次或多次

# 查找向量x中能匹配“R”字符零次或多次的元素并返回其下标
grep(pattern="R*", x=c("R语言","Python语言")

+:匹配一次或多次

# 查找向量x中能匹配“R”字符一次或多次的元素并返回其下标
grep(pattern="R+", x=c("R语言","Python语言")

?:匹配零次或一次

# 匹配向量x中含字符“R”零次或1次的元素,并返回其下标
grep(pattern="?R", x=c("学习R语言", "python语言","TR"))

{n}:匹配n次

# 查找向量x中字符“a”被匹配2次的元素并返回其下标
grep(pattern="a{2}", x=c("aabab","abs","cd"))

 

{n,}:至少匹配n次

# 查找向量x中字符“a”至少被匹配2次的元素并返回其下标
grep(pattern="a{2,}", x=c("aabab","abaas","cd"))

{n,m}:至少匹配n次,至多匹配m次,m>n

grep(pattern="a{2,3}", x=c("aabab", "abs","aaaacbbb"))

 

相关文章:

【R语言】函数

一、函数格式 如下所示&#xff1a; hello&#xff1a;函数名&#xff1b;function&#xff1a;定义的R对象是函数而不是其它变量&#xff1b;()&#xff1a;函数的输入参数&#xff0c;可以为空&#xff0c;也可以包含参数&#xff1b;{}&#xff1a;函数体&#xff0c;如果…...

python leetcode 笔记

只为记录一些python相关的特殊写法 无穷大&#xff0c;无穷小&#xff0c;NAN float(inf), float(-inf), float(nan) 判断字符的类型 isdigit(x) isspace(x) 字符串拼接 /.join([a,b,c]) # a/b/c 格式转换&#xff0c;字符转整形 ord(a) # 97 chr(97) # a 进制转…...

基于SpringBoot的青年公寓服务平台的设计与实现(源码+SQL脚本+LW+部署讲解等)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

深入剖析 HTML5 新特性:语义化标签和表单控件完全指南

系列文章目录 01-从零开始学 HTML&#xff1a;构建网页的基本框架与技巧 02-HTML常见文本标签解析&#xff1a;从基础到进阶的全面指南 03-HTML从入门到精通&#xff1a;链接与图像标签全解析 04-HTML 列表标签全解析&#xff1a;无序与有序列表的深度应用 05-HTML表格标签全面…...

kamailio的kamctl的使用

kamctl 是 Kamailio SIP 服务器的管理工具&#xff0c;用于执行各种管理任务&#xff0c;如启动、停止、重启 Kamailio 进程&#xff0c;管理用户、ACL、路由、信任的 IP 地址等。以下是对 kamctl 命令的解释及举例说明&#xff1a; 1. 启动、停止、重启 Kamailio start: 启动…...

[创业之路-270]:《向流程设计要效率》-2-企业流程架构模式 POS架构(规划、业务运营、支撑)、OES架构(业务运营、使能、支撑)

目录 一、POS架构 二、OES架构 三、POS架构与OES架构的差异 四、各自的典型示例 POS架构典型示例 OES架构典型示例 示例分析 五、各自的典型企业 POS架构典型企业 OES架构典型企业 分析 六、各自典型的流程 POS架构的典型流程 OES架构的典型流程 企业流程架构模式…...

【leetcode100】路径总和Ⅲ

1、题目描述 给定一个二叉树的根节点 root &#xff0c;和一个整数 targetSum &#xff0c;求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始&#xff0c;也不需要在叶子节点结束&#xff0c;但是路径方向必须是向下的&#xff08;只能从父节点…...

用结构加法3ax+1预测第4点的分布

有1个点在19*19的平面上在某种力的作用下运动&#xff0c;轨迹为 共移动了90步&#xff0c;按照&#xff08;0&#xff0c;1&#xff0c;2&#xff0c;3&#xff09;&#xff0c;&#xff08;1&#xff0c;2&#xff0c;3&#xff0c;4&#xff09;&#xff0c;…&#xff0c;&…...

CTF-web: Python YAML反序列化利用

PyYAML存在以下几个特殊标签,如果这些标签被不安全的解析,会造成解析漏洞 从 PyYaml 版本 6.0 开始&#xff0c;load 的默认加载器已切换到 SafeLoader&#xff0c;以降低远程代码执行的风险。更新后易受攻击的是 yaml.unsafe_load 和 yaml.load(input, Loaderyaml.UnsafeLoade…...

JDK-1.8.0_432安装(CentOS7)

目录 1、卸载系统自带JDK 2、下载安装包并解压 3、赋予可执行权限 4、设置环境变量 5、刷新环境变量 6、查看JDK版本 1、卸载系统自带JDK # 查询出自带的jdk rpm -qa | grep jdk rpm -qa | grep java # 将上述命令列出的包依次删除 rpm -e --nodeps xxxxxxx 2、下载…...

OpenGL学习笔记(五):Textures 纹理

文章目录 纹理坐标纹理环绕方式纹理过滤——处理纹理分辨率低的情况多级渐远纹理Mipmap——处理纹理分辨率高的情况加载与创建纹理 &#xff08; <stb_image.h> &#xff09;生成纹理应用纹理纹理单元练习1练习2练习3练习4 通过上一篇着色部分的学习&#xff0c;我们可以…...

【Pytorch和Keras】使用transformer库进行图像分类

目录 一、环境准备二、基于Pytorch的预训练模型1、准备数据集2、加载预训练模型3、 使用pytorch进行模型构建 三、基于keras的预训练模型四、模型测试五、参考 现在大多数的模型都会上传到huggface平台进行统一的管理&#xff0c;transformer库能关联到huggface中对应的模型&am…...

2025年Android开发趋势全景解读

文章目录 一、界面开发&#xff1a;从"手写代码"到"智能拼装"1.1 Jetpack Compose实战进化1.2 淘汰XML布局的三大信号 二、AI融合开发&#xff1a;无需炼丹的普惠智能2.1 设备端AI三大杀手级应用2.2 成本对比&#xff1a;设备端VS云端AI 三、跨平台演进&am…...

Python NumPy(12):NumPy 字节交换、NumPy 副本和视图、NumPy 矩阵库(Matrix)

1 NumPy 字节交换 在几乎所有的机器上&#xff0c;多字节对象都被存储为连续的字节序列。字节顺序&#xff0c;是跨越多字节的程序对象的存储规则。 大端模式&#xff1a;指数据的高字节保存在内存的低地址中&#xff0c;而数据的低字节保存在内存的高地址中&#xff0c;这样的…...

【Vaadin flow 实战】第5讲-使用常用UI组件绘制页面元素

vaadin flow官方提供的UI组件文档地址是 https://vaadin.com/docs/latest/components这里&#xff0c;我简单实战了官方提供的一些免费的UI组件&#xff0c;使用案例如下&#xff1a; Accordion 手风琴 Accordion 手风琴效果组件 Accordion 手风琴-测试案例代码 Slf4j PageT…...

第三篇:模型压缩与量化技术——DeepSeek如何在边缘侧突破“小而强”的算力困局

——从算法到芯片的全栈式优化实践 随着AI应用向移动终端与物联网设备渗透&#xff0c;模型轻量化成为行业核心挑战。DeepSeek通过自研的“算法-编译-硬件”协同优化体系&#xff0c;在保持模型性能的前提下&#xff0c;实现参数量与能耗的指数级压缩。本文从技术原理、工程实…...

搜索与图论复习2最短路

单源最短路---所有边权是正数(Dijkstra算法O(n^2)--稠密图(邻接矩阵)和堆优化的Dijkstra算法O(mlogn)--稀疏图(邻接表)) 或存在负边权(Bellman-ford贝尔曼福特算法O(nm)和SPFA一般O(m) 最坏O(nm) ) 多源最短路---Floyd算法O(n^3) 一、迪杰斯特拉算法(Dijkstra)&#xff1a;1…...

redis集群理论详解

一. Redis集群发展历程 本片文章只介绍集群理论知识&#xff0c;不包含Redis集群搭建教程 教程文章请点击docker搭建redis集群&#xff08;三主三从&#xff09; 阶段一&#xff1a;单机版Redis 优点&#xff1a; 简单&#xff1a;易于部署和使用&#xff0c;适合小型项目或初期…...

本地缓存~

前言 Caffeine是使用Java8对Guava缓存的重写版本&#xff0c;在Spring Boot 2.0中取而代之&#xff0c;基于LRU算法实现&#xff0c;支持多种缓存过期策略。 以下摘抄于https://github.com/ben-manes/caffeine/wiki/Benchmarks-zh-CN 基准测试通过使用Java microbenchmark ha…...

SpringBoot 整合 SpringMVC:SpringMVC的注解管理

分类&#xff1a; 中央转发器(DispatcherServlet)控制器视图解析器静态资源访问消息转化器格式化静态资源管理 中央转发器&#xff1a; 中央转发器被 SpringBoot 自动接管&#xff0c;不需要我们在 web.xml 中配置&#xff1a; <servlet><servlet-name>chapter2&l…...

YOLO11/ultralytics:环境搭建

前言 人工智能物体识别行业应该已经饱和了吧&#xff1f;或许现在并不是一个好的入行时候。 最近看到了各种各样相关的扩展应用&#xff0c;为了理解它&#xff0c;我不得不去尝试了解一下。 我选择了git里非常受欢迎的yolo系列&#xff0c;并尝试了最新版本YOLO11或者叫它ultr…...

扩散模型(三)

相关阅读&#xff1a; 扩散模型&#xff08;一&#xff09; 扩散模型&#xff08;二&#xff09; Latent Variable Space 潜在扩散模型&#xff08;LDM&#xff1b;龙巴赫、布拉特曼等人&#xff0c;2022 年&#xff09;在潜在空间而非像素空间中运行扩散过程&#xff0c;这…...

探索数学:从起源到未来的无尽旅程

数学的定义与本质 数学&#xff0c;这门古老而又充满魅力的学科&#xff0c;自人类文明诞生之初便如影随形。然而&#xff0c;要精准地定义数学并非易事&#xff0c;不同的学者从各自的视角出发&#xff0c;给出了多样的阐释。 亚里士多德将数学定义为 “数量科学”&#xff…...

OpenAI发布o3-mini:免费推理模型,DeepSeek引发的反思

引言 在人工智能领域&#xff0c;OpenAI再次引领潮流&#xff0c;推出了全新的推理模型系列——o3-mini。这一系列包括low、medium和high三个版本&#xff0c;旨在进一步推动低成本推理的发展。与此同时&#xff0c;OpenAI的CEO奥特曼也在Reddit的“有问必答”活动中罕见地公开…...

React中使用箭头函数定义事件处理程序

React中使用箭头函数定义事件处理程序 为什么使用箭头函数&#xff1f;1. 传递动态参数2. 避免闭包问题3. 确保每个方块的事件处理程序是独立的4. 代码可读性和维护性 示例代码总结 在React开发中&#xff0c;处理事件是一个常见的任务。特别是当我们需要传递动态参数时&#x…...

自制虚拟机(C/C++)(三、做成标准GUI Windows软件,扩展指令集,直接支持img软盘)

开源地址:VMwork 要使终端不弹出&#xff0c; #pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup") 还要实现jmp near 0x01类似的 本次的main.cpp #include <graphics.h> #include <conio.h> #include <windows.h> #includ…...

C# 语言基础全面解析

.NET学习资料 .NET学习资料 .NET学习资料 一、引言 C# 是一种功能强大、面向对象且类型安全的编程语言&#xff0c;由微软开发&#xff0c;广泛应用于各种类型的软件开发&#xff0c;从桌面应用、Web 应用到游戏开发等领域。本文将全面介绍 C# 语言的基础知识&#xff0c;帮…...

MySQL的覆盖索引

MySQL的覆盖索引 前言 当一个索引包含了查询所需的全部字段时&#xff0c;就可以提高查询效率&#xff0c;这样的索引又被称之为覆盖索引。 以MySQL常见的三种存储引擎为例&#xff1a;InnoDB、MyISAM、Memory&#xff0c;对于覆盖索引提高查询效率的方式均不同&#xff0c;…...

Hutool工具类

Hutool 是一个非常流行的 Java 工具类库&#xff0c;它提供了丰富的功能来简化开发中的常见任务&#xff0c;比如文件操作、加密、日期处理、字符串操作、数据库工具等。它是一个轻量级的工具库&#xff0c;可以减少开发者编写常用代码的工作量&#xff0c;提高开发效率。 主要…...

C++模板编程——可变参函数模板之折叠表达式

目录 1. 什么是折叠表达式 2. 一元左折 3. 一元右折 4. 二元左折 5. 二元右折 6. 后记 上一节主要讲解了可变参函数模板和参数包展开&#xff0c;这一节主要讲一下折叠表达式。 1. 什么是折叠表达式 折叠表达式是C17中引入的概念&#xff0c;引入折叠表达式的目的是为了…...

使用MATLAB进行雷达数据采集可视化

本文使用轮趣科技N10雷达&#xff0c;需要源码可在后台私信或者资源自取 1. 项目概述 本项目旨在通过 MATLAB 读取 N10 激光雷达 的数据&#xff0c;并进行 实时 3D 点云可视化。数据通过 串口 传输&#xff0c;并经过解析后转换为 三维坐标点&#xff0c;最终使用 pcplayer 进…...

【Linux系统】信号:信号保存 / 信号处理、内核态 / 用户态、操作系统运行原理(中断)

理解Linux系统内进程信号的整个流程可分为&#xff1a; 信号产生 信号保存 信号处理 上篇文章重点讲解了 信号的产生&#xff0c;本文会讲解信号的保存和信号处理相关的概念和操作&#xff1a; 两种信号默认处理 1、信号处理之忽略 ::signal(2, SIG_IGN); // ignore: 忽略#…...

在C语言多线程环境中使用互斥量

如果有十个银行账号通过不同的十条线程同时向同一个账号转账时&#xff0c;如果没有很好的机制保证十个账号依次存入&#xff0c;那么这些转账可能出问题。我们可以通过互斥量来解决。 C标准库提供了这个互斥量&#xff0c;只需要引入threads.头文件。 互斥量就像是一把锁&am…...

PHP代码审计学习02

目录 代码审计一般思路 Beescms代码审计&#xff08;upload&#xff09; Finecms基于前台MVC任意文件上传挖掘思路 CLTPHP基于thinkphp5框架的文件上传挖掘思路 今天来看PHP有框架MVC类&#xff0c;文件上传&#xff0c;断点调试挖掘。 同样还是有关键字搜索和功能点抓包两…...

基于微信小程序的医院预约挂号系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

大厂面试题备份20250201

20250201 面试策略 如果三面往后遇到传说中让人忍受不了的业余面试官&#xff0c;就舔着苟过去&#xff0c;入职大概率见不着他&#xff0c;但一二面遇到&#xff0c;反问环节就主动说不够match&#xff0c;让释放流程。 机器/深度学习 百面机器学习 5.4 通用CS 计算机网…...

Spring Boot 实例解析:HelloWorld 探究

POM 文件剖析&#xff1a; 父项目&#xff1a; <parent><groupId>org.springframework.boot</groupId><artifactId>spring‐boot‐starter‐parent</artifactId><version>1.5.9.RELEASE</version> </parent> 他的父项目是 <…...

【课题推荐】基于t分布的非高斯滤波框架在水下自主导航中的应用研究

水下自主导航系统在海洋探测、环境监测及水下作业等领域具有广泛的应用。然而&#xff0c;复杂的水下环境常常导致传感器输出出现野值噪声&#xff0c;这些噪声会严重影响导航信息融合算法的精度&#xff0c;甚至导致系统发散。传统的卡尔曼滤波算法基于高斯噪声假设&#xff0…...

【C++语言】卡码网语言基础课系列----12. 位置互换

文章目录 练习题目位置互换具体代码实现 小白寄语诗词共勉 练习题目 位置互换 题目描述&#xff1a; 给定一个长度为偶数位的字符串&#xff0c;请编程实现字符串的奇偶位互换。 输入描述&#xff1a; 输入包含多组测试数据。 输入的第一行是一个整数n&#xff0c;表示有测试…...

洛谷的更多功能(不会像其他文章那样复杂且仅支持Edge浏览器)

第一步&#xff1a;下载《洛谷美化 (1).zip》文件夹。 会出现这样的文件夹&#xff1a; 注意&#xff1a;Edge.txt和洛谷前提1.txt是一样的哟&#xff01; 第二步&#xff1a;篡改猴 先打开Edge.txt或者是洛谷前提1.txt文件&#xff0c;打开后复制粘贴到你的Edge浏览器并打开…...

C++编程语言:抽象机制:模板(Bjarne Stroustrup)

目录 23.1 引言和概观(Introduction and Overview) 23.2 一个简单的字符串模板(A Simple String Template) 23.2.1 模板的定义(Defining a Template) 23.2.2 模板实例化(Template Instantiation) 23.3 类型检查(Type Checking) 23.3.1 类型等价(Type Equivalence) …...

女生年薪12万,算不算属于高收入人群

在繁华喧嚣的都市中&#xff0c;我们时常会听到关于收入、高薪与生活质量等话题的讨论。尤其是对于年轻女性而言&#xff0c;薪资水平不仅关乎个人价值的体现&#xff0c;更直接影响到生活质量与未来的规划。那么&#xff0c;女生年薪12万&#xff0c;是否可以被划入高收入人群…...

2181、合并零之间的节点

2181、[中等] 合并零之间的节点 1、问题描述&#xff1a; 给你一个链表的头节点 head &#xff0c;该链表包含由 0 分隔开的一连串整数。链表的 开端 和 末尾 的节点都满足 Node.val 0 。 对于每两个相邻的 0 &#xff0c;请你将它们之间的所有节点合并成一个节点&#xff…...

Immutable设计 SimpleDateFormat DateTimeFormatter

专栏系列文章地址&#xff1a;https://blog.csdn.net/qq_26437925/article/details/145290162 本文目标&#xff1a; 理解不可变设计模式&#xff0c;时间format有线程安全要求的注意使用DateTimeFormatter 目录 ImmutableSimpleDateFormat 非线程安全可以synchronized解决&a…...

【网络】传输层协议TCP(重点)

文章目录 1. TCP协议段格式2. 详解TCP2.1 4位首部长度2.2 32位序号与32位确认序号&#xff08;确认应答机制&#xff09;2.3 超时重传机制2.4 连接管理机制(3次握手、4次挥手 3个标志位)2.5 16位窗口大小&#xff08;流量控制&#xff09;2.6 滑动窗口2.7 3个标志位 16位紧急…...

17.[前端开发]Day17-形变-动画-vertical-align

1 transform CSS属性 - transform transform的用法 表示一个或者多个 不用记住全部的函数&#xff0c;只用掌握这四个常用的函数即可 位移 - translate <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta ht…...

LeetCode435周赛T2贪心

题目描述 给你一个由字符 N、S、E 和 W 组成的字符串 s&#xff0c;其中 s[i] 表示在无限网格中的移动操作&#xff1a; N&#xff1a;向北移动 1 个单位。S&#xff1a;向南移动 1 个单位。E&#xff1a;向东移动 1 个单位。W&#xff1a;向西移动 1 个单位。 初始时&#…...

陆游的《诗人苦学说》:从藻绘到“功夫在诗外”(中英双语)mastery lies beyond poetry

陆游的《诗人苦学说》&#xff1a;从藻绘到“功夫在诗外” 今天看万维钢的《万万没想到》一书&#xff0c;看到陆游的功夫在诗外的句子&#xff0c;特意去查找这首诗的原文。故而有此文。 我国学人还往往过分强调“功夫在诗外”这句陆游的名言&#xff0c;认为提升综合素质是一…...

AI模型平台之——ModelScope(魔搭)

ModelScope 是什么&#xff1f; ModelScope 是一个由阿里巴巴达摩院推出的开源模型库和工具集&#xff0c;旨在为开发者提供高效、便捷的机器学习模型和工具。ModelScope 提供了丰富的预训练模型、数据集和工具&#xff0c;支持多种任务和应用场景&#xff0c;如自然语言处理、…...

GIt使用笔记大全

Git 使用笔记大全 1. 安装 Git 在终端或命令提示符中&#xff0c;输入以下命令检查是否已安装 Git&#xff1a; git --version如果未安装&#xff0c;可以从 Git 官方网站 下载并安装适合你操作系统的版本。 2. 配置 Git 首次使用 Git 时&#xff0c;需要配置用户名和邮箱…...