【Excel】【VBA】Reaction超限点筛选与散点图可视化

news2025/1/23 20:42:37

【Excel】【VBA】Reaction超限点筛选与散点图可视化

在这里插入图片描述

功能概述

这段代码实现了以下功能:

  1. 从SAFE输出的结果worksheet通过datalink获取更新数据
  2. 从指定工作表中读取数据
  3. 检测超过阈值的数据点
  4. 生成结果表格并添加格式化
  5. 创建可视化散点图
  6. 显示执行时间

流程图

初始化
开始
读取数据
检测超限值
是否有超限点?
创建结果表格
添加格式化
创建散点图
恢复Excel设置
显示执行时间
结束

关键方法详解

1. 性能优化技巧

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
  • 禁用屏幕更新和自动计算,提高执行效率
  • 完成后需要恢复这些设置

2. 数组操作

dataArray = .Range(.Cells(1, 1), .Cells(lastRow, 10)).Value
ReDim Preserve results(1 To 10, 1 To itemCount)
  • 使用数组批量读取数据,比逐单元格读取更快
  • ReDim Preserve 允许动态调整数组大小同时保留现有数据

3. 错误处理

On Error Resume Next
' 代码块
On Error GoTo 0
  • 使用错误处理确保代码稳定性
  • 可以优雅地处理工作表不存在等异常情况

4. 条件格式化

formatRange.FormatConditions.AddDatabar
With formatRange.FormatConditions(1)
    .BarFillType = xlDataBarFillSolid
    .BarColor.Color = RGB(255, 0, 0)
End With
  • 添加数据条来可视化超限比率
  • 使用RGB颜色定义来设置格式

5. 图表创建

Set chtObj = wsResult.ChartObjects.Add(...)
With chtObj.Chart
    .ChartType = xlXYScatter
    .SeriesCollection.NewSeries
    ' 设置数据源和格式
End With
  • 使用ChartObjects创建图表对象
  • 设置图表类型、数据源和格式化选项

6. 数据标签

With .DataLabels
    .ShowValue = False
    .Format.TextFrame2.TextRange.Font.Size = 8
    For pt = 1 To .Count
        .Item(pt).Text = Format(wsResult.Cells(pt + 1, "M").Value, "0.00%")
    Next pt
End With
  • 为散点添加自定义数据标签
  • 使用Format函数格式化百分比显示

学习要点

  1. 数据处理效率

    • 使用数组批量处理数据
    • 禁用不必要的Excel功能提升性能
  2. 代码结构

    • 使用With语句块简化代码
    • 合理组织代码逻辑,提高可读性
  3. 错误处理

    • 在关键操作处添加错误处理
    • 确保程序稳定运行
  4. Excel对象模型

    • 理解工作表、单元格范围的操作
    • 掌握图表对象的创建和设置
  5. 可视化技巧

    • 条件格式化的应用
    • 散点图的创建和自定义

实用技巧

  1. 使用常量定义关键值
Const THRESHOLD_VALUE As Double = 1739
  1. 计时功能实现
startTime = Timer
executionTime = Format(Timer - startTime, "0.00")
  1. 动态范围处理
lastRow = .Cells(.Rows.Count, "G").End(xlUp).Row

V20250121

Sub FindExceedingValues()
    Dim wsSource As Worksheet, wsCoord As Worksheet, wsResult As Worksheet
    Dim lastRow As Long
    Dim i As Long, itemCount As Long
    Dim dataArray() As Variant
    Dim results() As Variant
    Dim startTime As Double
    Const THRESHOLD_VALUE As Double = 1739 '设置阈值变量,方便修改
    Dim chtObj As ChartObject
    
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    startTime = Timer
    
    'Set up worksheets
    Set wsSource = ThisWorkbook.Worksheets("Nodal Reactions")
    Set wsCoord = ThisWorkbook.Worksheets("Obj Geom - Point Coordinates")
    
    'Create or clear result worksheet
    On Error Resume Next
    Set wsResult = ThisWorkbook.Worksheets("04.Over Points List")
    If wsResult Is Nothing Then
        Set wsResult = ThisWorkbook.Worksheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
        wsResult.Name = "04.Over Points List"
    End If
    On Error GoTo 0
    
    wsResult.Cells.Clear
    
    'Get last row of source data
    With wsSource
        lastRow = .Cells(.Rows.Count, "G").End(xlUp).Row
        
        'Read all data at once
        dataArray = .Range(.Cells(1, 1), .Cells(lastRow, 10)).Value
        
        'Initialize results array
        itemCount = 0
        ReDim results(1 To 10, 1 To 1)
        
        'Process data array
        For i = 2 To UBound(dataArray, 1)
            If IsNumeric(dataArray(i, 7)) Then
                If Abs(dataArray(i, 7)) > THRESHOLD_VALUE Then
                    itemCount = itemCount + 1
                    ReDim Preserve results(1 To 10, 1 To itemCount)
                    
                    'Store all columns
                    For j = 1 To 10
                        results(j, itemCount) = dataArray(i, j)
                    Next j
                End If
            End If
        Next i
    End With
    
    'Write results
    With wsResult
        'Write headers
        .Range("A1:J1") = Array("Node", "Point", "OutputCase", "CaseType", "Fx", "Fy", "Fz", "Mx", "My", "Mz")
        .Range("K1") = "X Coordinate"
        .Range("L1") = "Y Coordinate"
        .Range("M1") = "Exceeding Ratio" '新增列标题
        
        'Write data if any found
        If itemCount > 0 Then
            'Write main data
            For i = 1 To itemCount
                For j = 1 To 10
                    .Cells(i + 1, j) = results(j, i)
                Next j
            Next i
            
            'Add VLOOKUP formulas
            .Range("K2").Formula = "=VLOOKUP($B2,'Obj Geom - Point Coordinates'!$A:$C,2,FALSE)"
            .Range("L2").Formula = "=VLOOKUP($B2,'Obj Geom - Point Coordinates'!$A:$C,3,FALSE)"
            
            '添加比值计算公式
            .Range("M2").Formula = "=ABS(G2)/" & THRESHOLD_VALUE & "-1"
            
            'Fill down formulas if more than one row
            If itemCount > 1 Then
                .Range("K2:M2").AutoFill Destination:=.Range("K2:M" & itemCount + 1)
            End If
            
            'Format the worksheet
            With .Range("A1:M1")
                .Font.Bold = True
                .Interior.Color = RGB(200, 200, 200)
            End With
            
            With .Range("A1:M" & itemCount + 1)
                .Borders.LineStyle = xlContinuous
                .Columns.AutoFit
            End With
            
            .Range("A:D").NumberFormat = "@"
            .Range("M:M").NumberFormat = "0.00%" '设置比值列为百分比格式
            
            '添加数据条条件格式
            Dim formatRange As Range
            Set formatRange = .Range("M2:M" & itemCount + 1)
            formatRange.FormatConditions.Delete
            formatRange.FormatConditions.AddDatabar
            With formatRange.FormatConditions(1)
                .BarFillType = xlDataBarFillSolid
                .BarColor.Color = RGB(255, 0, 0) 'Red color
                .ShowValue = True
            End With
            
            '删除现有图表(如果存在)
            On Error Resume Next
            wsResult.ChartObjects.Delete
            On Error GoTo 0
            
        '创建散点图
        Set chtObj = wsResult.ChartObjects.Add( _
            Left:=.Range("O1").Left, _
            Top:=.Range("O1").Top, _
            Width:=800, _
            Height:=600)
        
        With chtObj.Chart
            .ChartType = xlXYScatter
            
            '添加数据系列
            .SeriesCollection.NewSeries
            With .SeriesCollection(1)
                .XValues = wsResult.Range("K2:K" & itemCount + 1)
                .Values = wsResult.Range("L2:L" & itemCount + 1)
                .MarkerStyle = xlMarkerStyleCircle
                .MarkerSize = 8
                .Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
                
                '为每个点添加数据标签
                .HasDataLabels = True
                With .DataLabels
                    .ShowValue = False
                    .ShowCategoryName = False
                    .ShowSeriesName = False
                    .Format.TextFrame2.TextRange.Font.Size = 8
                    
                    '设置每个点的数据标签为对应的M列值
                    On Error Resume Next  '添加错误处理
                    Dim pt As Integer
                    For pt = 1 To .Count
                        .Item(pt).Text = Format(wsResult.Cells(pt + 1, "M").Value, "0.00%")
                    Next pt
                    On Error GoTo 0
                End With
            End With
            
            '设置图表标题和轴标题
            .HasTitle = True
            .ChartTitle.Text = "Distribution of Exceeding Points"
            
            With .Axes(xlCategory, xlPrimary)
                .HasTitle = True
                .AxisTitle.Text = "X Coordinate"
            End With
            
            With .Axes(xlValue, xlPrimary)
                .HasTitle = True
                .AxisTitle.Text = "Y Coordinate"
            End With
            
            '添加图例
            .HasLegend = False
        End With
        End If
    End With
    
    'Restore settings
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    
    'Show completion message
    Dim executionTime As String
    executionTime = Format(Timer - startTime, "0.00")
    
    If itemCount = 0 Then
        MsgBox "No values exceeding " & THRESHOLD_VALUE & " were found in Column Fz." & vbNewLine & _
               "Execution time: " & executionTime & " seconds", vbInformation
    Else
        MsgBox itemCount & " values exceeding " & THRESHOLD_VALUE & " were found and listed." & vbNewLine & _
               "Execution time: " & executionTime & " seconds", vbInformation
    End If
End Sub


V20250122 add lower point list (for reduncancy reference)

在这里插入图片描述

Sub FindExceedingValues()
    Dim wsSource As Worksheet, wsCoord As Worksheet, wsResult As Worksheet, wsResultLow As Worksheet
    Dim lastRow As Long
    Dim i As Long, itemCount As Long, itemCountLow As Long
    Dim dataArray() As Variant
    Dim results() As Variant, resultsLow() As Variant
    Dim startTime As Double
    Const THRESHOLD_VALUE_HIGH As Double = 1850 '上限阈值
    Const THRESHOLD_VALUE_LOW As Double = 925  '下限阈值
    Dim chtObj As ChartObject
    
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    startTime = Timer
    
    'Set up worksheets
    Set wsSource = ThisWorkbook.Worksheets("Nodal Reactions")
    Set wsCoord = ThisWorkbook.Worksheets("Obj Geom - Point Coordinates")
    
    'Create or clear result worksheets
    On Error Resume Next
    Set wsResult = ThisWorkbook.Worksheets("04.Over Points List")
    Set wsResultLow = ThisWorkbook.Worksheets("05.Lower Points List")
    
    If wsResult Is Nothing Then
        Set wsResult = ThisWorkbook.Worksheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
        wsResult.Name = "04.Over Points List"
    End If
    
    If wsResultLow Is Nothing Then
        Set wsResultLow = ThisWorkbook.Worksheets.Add(After:=wsResult)
        wsResultLow.Name = "05.Lower Points List"  ' 确保这里的名称与前面的Set语句一致
    End If
    On Error GoTo 0
    
    ' 确保清除正确的工作表
    wsResult.Cells.Clear
    wsResultLow.Cells.Clear
    
    'Get last row of source data
    With wsSource
        lastRow = .Cells(.Rows.Count, "G").End(xlUp).Row
        
        'Read all data at once
        dataArray = .Range(.Cells(1, 1), .Cells(lastRow, 10)).Value
        
        'Initialize results arrays
        itemCount = 0
        itemCountLow = 0
        ReDim results(1 To 10, 1 To 1)
        ReDim resultsLow(1 To 10, 1 To 1)
        
        'Process data array
        For i = 2 To UBound(dataArray, 1)
            If IsNumeric(dataArray(i, 7)) Then
                If Abs(dataArray(i, 7)) > THRESHOLD_VALUE_HIGH Then
                    itemCount = itemCount + 1
                    ReDim Preserve results(1 To 10, 1 To itemCount)
                    
                    'Store all columns for high values
                    For j = 1 To 10
                        results(j, itemCount) = dataArray(i, j)
                    Next j
                ElseIf Abs(dataArray(i, 7)) < THRESHOLD_VALUE_LOW Then
                    itemCountLow = itemCountLow + 1
                    ReDim Preserve resultsLow(1 To 10, 1 To itemCountLow)
                    
                    'Store all columns for low values
                    For j = 1 To 10
                        resultsLow(j, itemCountLow) = dataArray(i, j)
                    Next j
                End If
            End If
        Next i
    End With
    
    '处理超过上限的数据
    ProcessWorksheet wsResult, results, itemCount, THRESHOLD_VALUE_HIGH, "Over"
    
    '处理低于下限的数据
    ProcessWorksheet wsResultLow, resultsLow, itemCountLow, THRESHOLD_VALUE_LOW, "Under"
    
    'Restore settings
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    
    'Show completion message
    Dim executionTime As String
    executionTime = Format(Timer - startTime, "0.00")
    
    MsgBox "Found " & itemCount & " values exceeding " & THRESHOLD_VALUE_HIGH & vbNewLine & _
           "Found " & itemCountLow & " values below " & THRESHOLD_VALUE_LOW & vbNewLine & _
           "Execution time: " & executionTime & " seconds", vbInformation
End Sub

Sub ProcessWorksheet(ws As Worksheet, results() As Variant, itemCount As Long, thresholdValue As Double, sheetType As String)
    Dim chtObj As ChartObject
    Dim j As Long
    
    With ws
        'Write headers
        .Range("A1:J1") = Array("Node", "Point", "OutputCase", "CaseType", "Fx", "Fy", "Fz", "Mx", "My", "Mz")
        .Range("K1") = "X Coordinate"
        .Range("L1") = "Y Coordinate"
        .Range("M1") = "Ratio" '新增列标题
        
        If itemCount > 0 Then
            'Write main data
            For i = 1 To itemCount
                For j = 1 To 10
                    .Cells(i + 1, j) = results(j, i)
                Next j
            Next i
            
            'Add VLOOKUP formulas
            .Range("K2").Formula = "=VLOOKUP($B2,'Obj Geom - Point Coordinates'!$A:$C,2,FALSE)"
            .Range("L2").Formula = "=VLOOKUP($B2,'Obj Geom - Point Coordinates'!$A:$C,3,FALSE)"
            
            '添加比值计算公式
            If sheetType = "Over" Then
                .Range("M2").Formula = "=ABS(G2)/" & thresholdValue & "-1"
            Else
                .Range("M2").Formula = "=1-ABS(G2)/" & thresholdValue
            End If
            
            'Fill down formulas if more than one row
            If itemCount > 1 Then
                .Range("K2:M2").AutoFill Destination:=.Range("K2:M" & itemCount + 1)
            End If
            
            'Format the worksheet
            With .Range("A1:M1")
                .Font.Bold = True
                .Interior.Color = RGB(200, 200, 200)
            End With
            
            With .Range("A1:M" & itemCount + 1)
                .Borders.LineStyle = xlContinuous
                .Columns.AutoFit
            End With
            
            .Range("A:D").NumberFormat = "@"
            .Range("M:M").NumberFormat = "0.00%"
            
            '添加数据条条件格式
            Dim formatRange As Range
            Set formatRange = .Range("M2:M" & itemCount + 1)
            formatRange.FormatConditions.Delete
            formatRange.FormatConditions.AddDatabar
            With formatRange.FormatConditions(1)
                .BarFillType = xlDataBarFillSolid
                If sheetType = "Over" Then
                    .BarColor.Color = RGB(255, 0, 0) 'Red for over values
                Else
                    .BarColor.Color = RGB(0, 0, 255) 'Blue for under values
                End If
                .ShowValue = True
            End With
            
            '删除现有图表(如果存在)
            On Error Resume Next
            ws.ChartObjects.Delete
            On Error GoTo 0
            
            '创建散点图
            Set chtObj = ws.ChartObjects.Add( _
                Left:=.Range("O1").Left, _
                Top:=.Range("O1").Top, _
                Width:=800, _
                Height:=600)
            
            With chtObj.Chart
                .ChartType = xlXYScatter
                
                '添加数据系列
                .SeriesCollection.NewSeries
                With .SeriesCollection(1)
                    .XValues = ws.Range("K2:K" & itemCount + 1)
                    .Values = ws.Range("L2:L" & itemCount + 1)
                    .MarkerStyle = xlMarkerStyleCircle
                    .MarkerSize = 8
                    If sheetType = "Over" Then
                        .Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
                    Else
                        .Format.Fill.ForeColor.RGB = RGB(0, 0, 255)
                    End If
                    
                    '为每个点添加数据标签
                    .HasDataLabels = True
                    With .DataLabels
                        .ShowValue = False
                        .ShowCategoryName = False
                        .ShowSeriesName = False
                        .Format.TextFrame2.TextRange.Font.Size = 8
                        
                        On Error Resume Next
                        Dim pt As Integer
                        For pt = 1 To .Count
                            .Item(pt).Text = Format(ws.Cells(pt + 1, "M").Value, "0.00%")
                        Next pt
                        On Error GoTo 0
                    End With
                End With
                
                '设置图表标题和轴标题
                .HasTitle = True
                If sheetType = "Over" Then
                    .ChartTitle.Text = "Distribution of Exceeding Points"
                Else
                    .ChartTitle.Text = "Distribution of Lower Points"
                End If
                
                With .Axes(xlCategory, xlPrimary)
                    .HasTitle = True
                    .AxisTitle.Text = "X Coordinate"
                End With
                
                With .Axes(xlValue, xlPrimary)
                    .HasTitle = True
                    .AxisTitle.Text = "Y Coordinate"
                End With
                
                '添加图例
                .HasLegend = False
            End With
        End If
    End With
End Sub




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2281077.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[Computer Vision]实验三:图像拼接

目录 一、实验内容 二、实验过程及结果 2.1 单应性变换 2.2 RANSAC算法 三、实验小结 一、实验内容 理解单应性变换中各种变换的原理&#xff08;自由度&#xff09;&#xff0c;并实现图像平移、旋转、仿射变换等操作&#xff0c;输出对应的单应性矩阵。利用RANSAC算法优…

微信小程序使用picker根据接口给的省市区的数据实现省市区三级联动或者省市区街道等多级联动

接口数据如上图 省市区多级联动&#xff0c;都是使用的一个接口通过传参父类的code。返回我们想要的数据 比如获取省就直接不要参数。市就把省得code传给接口&#xff0c;区就把市的code作为参数。 <picker mode"multiSelector" :range"mulSelect1" …

自动化01

测试用例的万能公式&#xff1a;功能测试界面测试性能测试易用性测试安全性测试兼容性测试 自动化的主要目的就是用来进行回归测试 新产品--第一个版本 (具备丰富的功能)&#xff0c;将产品的整体进行测试&#xff0c;人工创造一个自动化测试用例&#xff0c;在n个版本的时候…

JS宏进阶:正则表达式的使用

正则表达式&#xff0c;对于任何一门编程语言来说&#xff0c;都是一种非常强大的工具&#xff0c;主要用于搜索、编辑或操作文本和数据。因此&#xff0c;在JS中&#xff0c;也存在相应的对象new RegExp( )&#xff0c;在本章中&#xff0c;将详细介绍正则表达式在JS宏中的运用…

深度学习笔记——循环神经网络RNN

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍面试过程中可能遇到的循环神经网络RNN知识点。 文章目录 文本特征提取的方法1. 基础方法1.1 词袋模型&#xff08;Bag of Words, BOW&#xff09;工作原…

Git进阶笔记系列(01)Git核心架构原理 | 常用命令实战集合

读书笔记&#xff1a;卓越强迫症强大恐惧症&#xff0c;在亲子家庭、职场关系里尤其是纵向关系模型里&#xff0c;这两种状态很容易无缝衔接。尤其父母对子女、领导对下属&#xff0c;都有望子成龙、强将无弱兵的期望&#xff0c;然而在你的面前&#xff0c;他们才是永远强大的…

SpringBoot读取yml配置文件一组对象数据初始化

1. yml的短横杠语法2. yml数组元素读取并初始化3. 测试结果 1. yml的短横杠语法 - 短横杠加空格&#xff0c;可以表示数组元素&#xff0c;如下配置 表示有名为apps的一组数据&#xff0c;数组的元素对象包含有corpId、corpSecret、appCode三个字段像server.port没有 - 表示的…

基于JAVA的校园二手商品交易平台的设计与开发

摘 要&#xff1a;政府政策引导与社会观念的转变使得国内大学生的创业意识逐渐提高&#xff0c;很多高校大学生开始自主创业。目前我国各大高校暂且还没有较为成型的针对校内学生创业者的校园网络服务平台。本文首先主要是介绍了关于java语言以及web开发的相关技术&#xff0c;…

深度学习核函数

一、核函数的基本概念 核函数在机器学习中具有重要应用价值&#xff0c;常用于支持向量机&#xff08;SVM&#xff09;等算法中。 核函数是面试中经常被考到的知识点&#xff0c;对于找工作和实际数据转换都有重要作用。 二、数据建模与核函数的作用 数据越多&#xff0c;可…

数据结构(三) 排序/并查集/图

目录 1. 排序 2.并查集 3.图 1.排序: 1.1 概念: 排序就是将数据按照某种规则进行排列, 具有某种顺序. 分为内排序和外排序. 内排序就是: 将数据放在内存中的排序; 外排序是: 数据太多无法在内存中排序的. 1.2 插入排序: 插入排序包含: 直接插入排序和希尔排序. (1) 直接插入…

ECCV 2024,全新激活函数!

激活函数对深度神经网络的成功可太重要了&#xff0c;它可以提升学习复杂关系的能力&#xff0c;减少过拟合&#xff0c;增强模型性能&#xff0c;与它相关的研究一直是重中之重。最近&#xff0c;这方向有了不少新突破。 ECCV 2024上的这篇&#xff0c;提出了一种可训练的高表…

小米Vela操作系统开源:AIoT时代的全新引擎

小米近日正式开源了其物联网嵌入式软件平台——Vela操作系统&#xff0c;并将其命名为OpenVela。这一举动在AIoT&#xff08;人工智能物联网&#xff09;领域掀起了不小的波澜&#xff0c;也为开发者们提供了一个强大的AI代码生成器和开发平台。OpenVela项目源代码已托管至GitH…

ComfyUI实现老照片修复——AI修复老照片(ComfyUI-ReActor / ReSwapper)尚待完善

AI修复老照片&#xff0c;试试吧&#xff0c;不一定好~~哈哈 2023年4月曾用过ComfyUI&#xff0c;当时就感慨这个工具和虚幻的蓝图很像&#xff0c;以后肯定是专业人玩的。 2024年我写代码去了&#xff0c;AI做图没太关注&#xff0c;没想到&#xff0c;现在ComfyUI真的变成了工…

YOLOv5训练自己的数据及rknn部署

YOLOv5训练自己的数据及rknn部署 一、下载源码二、准备自己的数据集2.1 标注图像2.2 数据集结构 三、配置YOLOv5训练3.1 修改配置文件3.2 模型选择 四、训练五、测试六、部署6.1 pt转onnx6.2 onnx转rknn 七、常见错误7.1 训练过程中的错误7.1.1 cuda: out of memory7.1.2 train…

C# OpenCvSharp 部署文档矫正,包括文档扭曲/模糊/阴影等情况

目录 说明 效果 模型 项目 代码 下载 参考 C# OpenCvSharp 部署文档矫正&#xff0c;包括文档扭曲/模糊/阴影等情况 说明 地址&#xff1a;https://github.com/RapidAI/RapidUnDistort 修正文档扭曲/模糊/阴影等情况&#xff0c;使用onnx模型简单轻量部署&#xff0c…

贪心算法(题1)区间选点

输出 2 #include <iostream> #include<algorithm>using namespace std;const int N 100010 ;int n; struct Range {int l,r;bool operator <(const Range &W)const{return r<W.r;} }range[N];int main() {scanf("%d",&n);for(int i0;i&l…

煤矿场景下安全帽检测数据集VOC+YOLO格式179张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;170 标注数量(xml文件个数)&#xff1a;170 标注数量(txt文件个数)&#xff1a;170 标注…

RTX 5090原型据称有24576个CUDA核心和800 W TDP -两个16针连接器

英伟达今年早些时候发布、将于1月30日上市的GeForce RTX 5090&#xff0c;有望成为最出色的显卡之一。然而&#xff0c;硬件侦探HXL发掘出了一款疑似早期原型产品。不过&#xff0c;考虑到传闻中的规格参数&#xff0c;它很有可能会成为GeForce RTX 5090 Ti或者RTX Titan Black…

哪个控制面板适合您?

如今&#xff0c;VPS云主机的控制面板在网站托管中变得越来越重要。对于网站管理者和普通用户来说&#xff0c;这类控制面板提供了一站式的管理工具&#xff0c;可以在同一个界面中处理所有网站的管理任务&#xff0c;极大地减少了多系统间重复操作的麻烦。 但随着越来越多的公…

Redis - 通用命令

目录 了解Redis客户端set 和 getRedis全局命令keys命令exists命令del命令expire命令ttl命令Redis中key的过期策略type 了解Redis客户端 想要输入Redis命令,必须先进入Redis客户端 使用redis-cli连接本机的命令行客户端 redis-cli如果想连接其他的ip和端口的客户端&#xff0…