MATLAB绘图基础5:MATLAB数据导入

news2024/9/20 9:01:16

参考书:《 M A T L A B {\rm MATLAB} MATLAB与学术图表绘制》(关东升)。



5.MATLAB数据导入
5.1 从CSV文件读取数据
  • C S V {\rm CSV} CSV文件是一种纯文本文件,文件中的数据以逗号为分隔符进行字段分隔,每一行数据代表一条记录,每个字段在该行内通过逗号进行分隔;

  • C S V {\rm CSV} CSV文件可以使用任何文本编辑器创建和编辑,且可以被很多应用软件程序和编程语言读取和处理;

  • C S V {\rm CSV} CSV文件通常用于存储表格数据,如:电子表格数据、数据库导出数据等;

  • r e a d t a b l e {\rm readtable} readtable函数:

    • 作用: r e a d t a b l e {\rm readtable} readtable函数适用于读取包含混合数据类型,包括文本和数值的 C S V {\rm CSV} CSV文件,并将其导入为 M A T L A B {\rm MATLAB} MATLAB表格;

    • 列名: r e a d t a b l e {\rm readtable} readtable自动将 C S V {\rm CSV} CSV文件的第一行作为列名,便于理解和操作数据;

    • r e a d t a b l e {\rm readtable} readtable语法:

      % readtable语法:
      T = readtable(filename)
      T = readtable(filename, Name, Value)
      
      % T:表格数据结构,用于存储从文件中读取的数据;
      % filename:要读取的文件的路径和名称;
      % Name,Value:一些可选的名称-值对(即键值对),用于指定额外的选项,如跳过的行数等;
      
  • c s v r e a d {\rm csvread} csvread函数:

    • 作用: c s v r e a d {\rm csvread} csvread函数适用于读取仅包含数值数据的 C S V {\rm CSV} CSV文件,并将其导入为 M A T L A B {\rm MATLAB} MATLAB数值矩阵;

    • 数据类型:适用于纯数值数据,不支持文本列;

    • 列名:不支持列名,只导入数值部分;

    • 数据结构:导入的数据以数值矩阵的形式存储,适用于数值分析和计算;

    • c s v r e a d {\rm csvread} csvread语法:

      % csvread语法:
      M = csvread(filename)
      M = csvread(filename, R1, C1)
      M = csvread(filename, R1, C1, R2, C2)
      
      % M:包含从CSV文件中读取的数值数据的矩阵;
      % filename:要读取的CSV文件的路径和名称;
      % R1、C1、R2、C2:用于指定要读取的数据范围的行和列;
      
  • r e a d t a b l e {\rm readtable} readtable函数使用示例:

    % ch05_01.m
    clear;
    clc;
    
    % 创建要读取的文件路径;
    filePath = 'ch05_01.csv';     
    data1 = readtable(filePath);
    
    disp(data1(1:2,:));         % 显示前两行数据;
    disp('==============================================');
    disp(data1(1:5,:));         % 显示前五行数据;
    disp('==============================================');
    disp(data1(:,:));           % 显示整个文件数据;
    
    % ch05_01.m运行结果:
           Name        Age    Height    Weight
        ___________    ___    ______    ______
    
        {'Willard'}    20      172        60  
        {'Chen'   }    18      160        45  
    
    ==============================================
           Name        Age    Height    Weight
        ___________    ___    ______    ______
    
        {'Willard'}    20      172        60  
        {'Chen'   }    18      160        45  
        {'Zhang'  }    18      165        46  
        {'LiuQB'  }    28      170        55  
        {'Zhou'   }    19      166        46  
    
    ==============================================
           Name        Age    Height    Weight
        ___________    ___    ______    ______
    
        {'Willard'}    20      172        60  
        {'Chen'   }    18      160        45  
        {'Zhang'  }    18      165        46  
        {'LiuQB'  }    28      170        55  
        {'Zhou'   }    19      166        46 
    
  • c s v r e a d {\rm csvread} csvread函数使用示例:

    % ch05_02.m
    clear;
    clc;
    
    % 创建要读取的文件路径;
    filePath = 'ch05_02.csv';     
    
    % 注:字符串读取不了,如:姓名列(name):Willard、Chen这些数据读取不了;
    data2 = csvread(filePath,1,1);      % 从第2行第2列开始读取数据;   
    
    disp(data2);                     
    
    % ch05_02.m运行结果:
      20   172    60
      18   160    45
      18   165    46
      28   170    55
      19   166    46
    
5.2 从Excel文件读取数据
  • M A T L A B {\rm MATLAB} MATLAB中,可以使用 x l s r e a d {\rm xlsread} xlsread函数和 r e a d t a b l e {\rm readtable} readtable函数从 E x c e l {\rm Excel} Excel文件导入数据;

  • x l s r e a d {\rm xlsread} xlsread函数特点:

    • 返回一个数值矩阵,不返回列标签;
    • 主要用于读取 E x c e l {\rm Excel} Excel文件中的数值数据,不擅长读取文本数据;
    • 通常需要指定要读取的数据范围,包括工作表名称、索引及数据范围;
    • 通常需要额外的处理来处理数据类型和列标签;
  • x l s r e a d {\rm xlsread} xlsread函数语法:

    % xlsread函数语法:
    [num, txt, raw] = xlsread(filename)
    [num, txt, raw] = xlsread(filename, sheet)
    [num, txt, raw] = xlsread(filename, sheet, range)
    
    % num:一个包含数值数据的矩阵;
    % txt:一个包含文本数据的单元格数组;
    % raw:一个包含原始数据的混合单元格数组;
    % filename:要读取的Excel文件的路径和名称;
    % sheet:要读取的工作表的名称和索引;
    % range:要读取的数据范围;
    
  • r e a d t a b l e {\rm readtable} readtable函数使用示例:

    % ch05_03.m
    clear;
    clc;
    
    % 指定数据文件路径
    filePath = 'ch05_03.xls';
    
    % 指定要读取的数据范围(第1列至第6列,第4行至第23行数据)
    data_range = 'A4:F23';
    
    % 使用readtable函数读取指定范围的数据
    data = readtable(filePath, 'Range', data_range);
    
    % 显示数据
    disp(data);
    
    % ch05_03.m运行结果:
           Var1          Var2       Var3     Var4     Var5     Var6 
        __________    __________    _____    _____    _____    _____
    
        {'2018年'}    1.3954e+05    71351    68187    83137    56401
        {'2017年'}    1.3901e+05    71137    67871    81347    57661
        {'2016年'}    1.3827e+05    70815    67456    79298    58973
        {'2015年'}    1.3746e+05    70414    67048    77116    60346
        {'2014年'}    1.3678e+05    70079    66703    74916    61866
        {'2013年'}    1.3607e+05    69728    66344    73111    62961
        {'2012年'}     1.354e+05    69395    66009    71182    64222
        {'2011年'}    1.3474e+05    69068    65667    69079    65656
        {'2010年'}    1.3409e+05    68748    65343    66978    67113
        {'2009年'}    1.3345e+05    68647    64803    64512    68938
        {'2008年'}     1.328e+05    68357    64445    62403    70399
        {'2007年'}    1.3213e+05    68048    64081    60633    71496
        {'2006年'}    1.3145e+05    67728    63720    58288    73160
        {'2005年'}    1.3076e+05    67375    63381    56212    74544
        {'2004年'}    1.2999e+05    66976    63012    54283    75705
        {'2003年'}    1.2923e+05    66556    62671    52376    76851
        {'2002年'}    1.2845e+05    66115    62338    50212    78241
        {'2001年'}    1.2763e+05    65672    61955    48064    79563
        {'2000年'}    1.2674e+05    65437    61306    45906    80837
        {'1999年'}    1.2579e+05    64692    61094    43748    82038
    
  • x l s r e a d {\rm xlsread} xlsread函数使用示例:

    % ch05_04.m
    clear;
    clc;
    
    % 指定数据文件路径
    filePath = 'ch05_04.xls';
    
    % 指定要读取的数据范围(第1列至第6列,第4行至第23行数据)
    data_range = 'A4:F23';
    
    % 使用xlsread函数读取数据
    % num:包含从Excel文件中读取的数值数据;
    % txt:包含文本数据;
    % raw:包含原始数据,包括数值和文本数据;
    [num, txt, raw] = xlsread(filePath, data_range);
    disp('Excel文件中的数值数据:');
    disp(num);
    
    disp('Excel文件中的文本数据:');
    disp(txt);
    
    disp('Excel文件中的原始数据:');
    disp(raw);
    
    % ch05_04.m运行结果:
    Excel文件中的数值数据:
          139538       71351       68187       83137       56401
          139008       71137       67871       81347       57661
          138271       70815       67456       79298       58973
          137462       70414       67048       77116       60346
          136782       70079       66703       74916       61866
          136072       69728       66344       73111       62961
          135404       69395       66009       71182       64222
          134735       69068       65667       69079       65656
          134091       68748       65343       66978       67113
          133450       68647       64803       64512       68938
          132802       68357       64445       62403       70399
          132129       68048       64081       60633       71496
          131448       67728       63720       58288       73160
          130756       67375       63381       56212       74544
          129988       66976       63012       54283       75705
          129227       66556       62671       52376       76851
          128453       66115       62338       50212       78241
          127627       65672       61955       48064       79563
          126743       65437       61306       45906       80837
          125786       64692       61094       43748       82038
    
    Excel文件中的文本数据:
        {'2018年'}
        {'2017年'}
        {'2016年'}
        {'2015年'}
        {'2014年'}
        {'2013年'}
        {'2012年'}
        {'2011年'}
        {'2010年'}
        {'2009年'}
        {'2008年'}
        {'2007年'}
        {'2006年'}
        {'2005年'}
        {'2004年'}
        {'2003年'}
        {'2002年'}
        {'2001年'}
        {'2000年'}
        {'1999年'}
    
    Excel文件中的原始数据:
        {'2018年'}    {[139538]}    {[71351]}    {[68187]}    {[83137]}    {[56401]}
        {'2017年'}    {[139008]}    {[71137]}    {[67871]}    {[81347]}    {[57661]}
        {'2016年'}    {[138271]}    {[70815]}    {[67456]}    {[79298]}    {[58973]}
        {'2015年'}    {[137462]}    {[70414]}    {[67048]}    {[77116]}    {[60346]}
        {'2014年'}    {[136782]}    {[70079]}    {[66703]}    {[74916]}    {[61866]}
        {'2013年'}    {[136072]}    {[69728]}    {[66344]}    {[73111]}    {[62961]}
        {'2012年'}    {[135404]}    {[69395]}    {[66009]}    {[71182]}    {[64222]}
        {'2011年'}    {[134735]}    {[69068]}    {[65667]}    {[69079]}    {[65656]}
        {'2010年'}    {[134091]}    {[68748]}    {[65343]}    {[66978]}    {[67113]}
        {'2009年'}    {[133450]}    {[68647]}    {[64803]}    {[64512]}    {[68938]}
        {'2008年'}    {[132802]}    {[68357]}    {[64445]}    {[62403]}    {[70399]}
        {'2007年'}    {[132129]}    {[68048]}    {[64081]}    {[60633]}    {[71496]}
        {'2006年'}    {[131448]}    {[67728]}    {[63720]}    {[58288]}    {[73160]}
        {'2005年'}    {[130756]}    {[67375]}    {[63381]}    {[56212]}    {[74544]}
        {'2004年'}    {[129988]}    {[66976]}    {[63012]}    {[54283]}    {[75705]}
        {'2003年'}    {[129227]}    {[66556]}    {[62671]}    {[52376]}    {[76851]}
        {'2002年'}    {[128453]}    {[66115]}    {[62338]}    {[50212]}    {[78241]}
        {'2001年'}    {[127627]}    {[65672]}    {[61955]}    {[48064]}    {[79563]}
        {'2000年'}    {[126743]}    {[65437]}    {[61306]}    {[45906]}    {[80837]}
        {'1999年'}    {[125786]}    {[64692]}    {[61094]}    {[43748]}    {[82038]}
    
5.3 从JSON文件读取数据
  • J S O N ( J a v a S c r i p t   O b j e c t   N o t a t i o n ) {\rm JSON(JavaScript\ Object\ Notation)} JSON(JavaScript Object Notation)文件以文本形式表示结构化数据;

  • J S O N {\rm JSON} JSON结构:

    // JSON示例:
    [
        {
            "name": "Willard",
            "Age": 20,
            "Height": 170,
            "Weight": 60
        },
        {
            "name": "Chen",
            "Age": 18,
            "Height": 160,
            "Weight": 48
        }
    ]
    
    // 1.大括号{}表示一个JSON对象,包含键值对的集合,每个键值对由一个键(key)和一个关联值(value)组成,
    // 	 键和值间用冒号分隔,键值对间用逗号分隔,JSON对象用于表示具有命名字段的数据;
    
    // 2.中括号[]表示一个JSON数组,包含值的有序集合,JSON数组允许用户将多个值按一定的顺序进行组织;
    //   数组中的每个值可以是一个标量或另一个JSON对象或JSON数组,JSON数组通常用于表示多个相似的数据项;
    
  • 读取 J S O N {\rm JSON} JSON文件数据示例:

    % ch05_05.m
    clear;
    clc;
    
    % 读取JSON文件并存储在jsonStr变量中;
    jsonStr = fileread('ch05_05.json');
    
    % 使用jsondecode函数将JSON字符串解码为MATLAB结构体;
    jsonData = jsondecode(jsonStr);
    
    % 访问和操作解码后的数据;
    for i = 1:length(jsonData)
        name = jsonData(i).Name;
        age = jsonData(i).Age;
        height = jsonData(i).Height;
        weight = jsonData(i).Weight;
        
        fprintf('Name: %s\n',name);
        fprintf('Age: %d, Height: %d, Weight: %d\n\n',age, height, weight);
    end
    
    % ch05_05.m运行结果:
    Name: Willard
    Age: 20, Height: 170, Weight: 60
    
    Name: Chen
    Age: 18, Height: 160, Weight: 46
    
    Name: Zhang
    Age: 18, Height: 166, Weight: 48
    
    // ch05_05.json文件内容
    [
      {
    	"Name": "Willard",
    	"Age": 20,
    	"Height": 170,
    	"Weight": 60
      }, 
      {
    	"Name": "Chen",
    	"Age": 18,
    	"Height": 160,
    	"Weight": 46
      },
      {
    	"Name": "Zhang",
    	"Age": 18,
    	"Height": 166,
    	"Weight": 48
      }
    ]
    
5.4 从XML文件读取数据
  • X M L ( E x t e n s i b l e   M a r k u p   L a n g u a g e ) {\rm XML(Extensible\ Markup\ Language)} XML(Extensible Markup Language):一种用于存储和交换数据的文本格式;

  • X M L {\rm XML} XML是一种标记语言,用于描述数据的结构和内容, X M L {\rm XML} XML文件包含各种数据,这些数据使用标签和元素来标识和组织,每个 X M L {\rm XML} XML元素都由一个开始标签、元素内容和结束标签组成;

  • X M L {\rm XML} XML语法示例:

    <?xml version="1.0" encoding="UTF-8"?>
    <studentInfoData>
        <Name name="Willard">
            <Age>20</Age>
            <Height>172</Height>
            <Weight>60</Weight>
        </Name>
        <Name name="Chen">
            <Age>18</Age>
            <Height>156</Height>
            <Weight>46</Weight>
        </Name>
    </studentInfoData>
    
  • 读取 X M L {\rm XML} XML数据示例:

    % ch05_06.m
    clear;
    clc;
    
    % 读取XML文件
    xmlFile = 'ch05_06.xml';
    % 使用xmlread函数解析XML文件
    doc = xmlread(xmlFile);
    
    % 获取根元素(AirQualityData)
    root = doc.getDocumentElement();
    
    % 获取City元素的节点列表
    cityNodes = root.getElementsByTagName('City');
    
    % 初始化一个结构数组,用于存储城市数据
    cityData = struct();
    
    % 遍历每个City元素
    for i = 0:cityNodes.getLength - 1
        cityNode = cityNodes.item(i);
        
        % 获取城市的名称属性
        cityName = char(cityNode.getAttribute('name'));
        
        % 获取Year、PM25_Concentration、PM10_Concentration、SO2_Concentration和CO_Concentration的值
        year = str2double(cityNode.getElementsByTagName('Year').item(0).getTextContent());
        pm25 = str2double(cityNode.getElementsByTagName('PM25_Concentration').item(0).getTextContent());
        pm10 = str2double(cityNode.getElementsByTagName('PM10_Concentration').item(0).getTextContent());
        so2 = str2double(cityNode.getElementsByTagName('SO2_Concentration').item(0).getTextContent());
        co = str2double(cityNode.getElementsByTagName('CO_Concentration').item(0).getTextContent());
        
        % 存储城市数据到结构数组
        cityData(i+1).name = cityName;
        cityData(i+1).year = year;
        cityData(i+1).PM25_Concentration = pm25;
        cityData(i+1).PM10_Concentration = pm10;
        cityData(i+1).SO2_Concentration = so2;
        cityData(i+1).CO_Concentration = co;
    end
    
    <?xml version="1.0" encoding="UTF-8"?>
    <AirQualityData>
      <City name="北京">
        <Year>2018</Year>
        <PM25_Concentration>25</PM25_Concentration>
        <PM10_Concentration>40</PM10_Concentration>
        <SO2_Concentration>10</SO2_Concentration>
        <CO_Concentration>5</CO_Concentration>
      </City>
      <City name="上海">
        <Year>2018</Year>
        <PM25_Concentration>35</PM25_Concentration>
        <PM10_Concentration>50</PM10_Concentration>
        <SO2_Concentration>15</SO2_Concentration>
        <CO_Concentration>8</CO_Concentration>
      </City>
      <City name="广州">
        <Year>2018</Year>
        <PM25_Concentration>45</PM25_Concentration>
        <PM10_Concentration>60</PM10_Concentration>
        <SO2_Concentration>20</SO2_Concentration>
        <CO_Concentration>10</CO_Concentration>
      </City>
    </AirQualityData>
    
5.5 从mat文件读取数据
  • m a t {\rm mat} mat M A T L A B {\rm MATLAB} MATLAB基于二进制的专有的数据文件格式,用来保存 M A T L A B {\rm MATLAB} MATLAB中的数据,包括矩阵、数组、字符串等;

  • m a t {\rm mat} mat文件的主要特点包括:

    • 可以方便地保存 M A T L A B {\rm MATLAB} MATLAB的任意数据,包括多维数组、结构数组等复杂数据;
    • 数据以压缩的二进制格式保存,文件体积小;
    • 通过 m a t {\rm mat} mat文件可以地在 M A T L A B {\rm MATLAB} MATLAB和其他语言间交换数据;
    • 使用 M A T L A B {\rm MATLAB} MATLAB s a v e {\rm save} save函数和 l o a d {\rm load} load函数可以方便地读写 m a t {\rm mat} mat文件;
  • 读取 m a t {\rm mat} mat数据使用示例:

    % ch05_07.m
    clear;
    clc;
    
    % 生成8x8的随机数据矩阵并存储在变量data中;
    data = rand(8);
    save('ch05_07.mat','data');
    
    clear;
    
    % 使用load函数从ch05_07.mat文件加载数据;
    load('ch05_07.mat');
    
    % 将加载的数据存储在newdata变量中;
    newdata = data;
    
    % 使用plot函数绘制newdata中的数据;
    plot(newdata);
    set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5);
    xlabel('x');
    ylabel('y');
    
    % 返回每一列的最大值;
    msg = sprintf('最大值:%f',max(newdata));
    disp(msg);
    
    % 将newdata变量保存到newdata.mat文件中;
    save('newdata.mat','newdata');
    

    1

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

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

相关文章

通信工程学习:什么是AB地址总线、DB数据总线、CD控制总线

AB地址总线、DB数据总线、CD控制总线 在计算机体系结构中&#xff0c;总线&#xff08;Bus&#xff09;是一种用于在计算机内部各个组件之间传输信息的物理通道。其中&#xff0c;AB地址总线、DB数据总线和CD控制总线是计算机总线系统中非常重要的三个组成部分&#xff0c;它们…

机器学习-神经网络:循环神经网络(RNN)详解

引言 在当今人工智能(AI)和深度学习(DL)领域,循环神经网络(RNN)作为一种专门处理序列数据的模型,具有不可忽视的重要性。RNN 的设计目标是模拟和处理序列中的时间依赖关系,使其成为许多应用场景的理想选择,如自然语言处理(NLP)、时间序列预测和语音识别等。它不仅…

乐凡北斗车载终端 | 车载终端功能是什么?

北斗车载终端即北斗卫星监控系统主机&#xff0c;主要是通过北斗卫星实现定位和导航&#xff1b;并通过传输网络与监控中心通信&#xff0c;由前端设备、传输网络、监控中心构成北斗卫星定位监控系统&#xff0c;实现定位跟踪及智能功能, 终端还可内置8Mbit的Flash储存器&#…

分享一个基于uniapp科技馆服务微信小程序 博物馆管理小程序(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…

Java stream使用与执行原理

stream简介 Stream: A sequence of elements supporting sequential and parallel aggregate operations stream为sequential即单线程串行操作&#xff0c;parallelStream支持并行操作&#xff0c;本文只讨论sequential的stream。 stream常用操作 Datastatic class Course {pr…

【软件工程】第二讲软件过程

【软件工程】第二讲软件过程 文章目录 【软件工程】第二讲软件过程1. 软件过程概述1.1 软件工程的金三角1.2 软件过程的定义1.3 软件过程的组成 2. 软件生命周期模型2.1 瀑布模型2.2 增量模型2.3 演化模型 3. 统一软件过程RUP3.1 RUP最佳实践3.2 统一软件过程RUP 4. 敏捷过程4.…

Qt-常用控件(2)-按钮类和显示类

​ 1. QPushButton 使用 QPushButton 表示一个按钮.这也是当前我们最熟悉的一个控件了 QPushButton 继承自 QAbstractButton.这个类是一个抽象类.是其他按钮的父类 在 Qt Designer中也能够看到这⾥的继承关系 QAbstractButton 中,和 QPushButton 相关性较⼤的属性 属性说明t…

触想全新Z系列工控机扩展IIoT应用潜能

8月31日&#xff0c;触想重磅推出全新Z系列高性能、扩展型工控机——TPC05/06/07-WIPC&#xff0c;提供标准版/双卡槽/四卡槽3款机型选择。 作为边缘计算、机器视觉、AI智能和工业应用的理想机型&#xff0c;Z系列工控机支持Intel第12/13/14代Core™ i3/i5/i7/i9处理器&#xf…

git如何灵活切换本地账号对应远程github的两个账号

git如何灵活切换本地账号对应远程github的两个账号 问题&#xff1a; 有时候我们会同时维护两个github的账号里面的仓库内容&#xff0c;这时候本地git需要频繁的切换ssh&#xff0c;以方便灵活的与两个账号的仓库可以通信。这篇日记将阐述我是怎么解决这个问题的。1. 第一个账…

kubernetes--配置与存储(ConfigMap、加密数据配置Secret、SubPath、热更新、Volumes、NFS挂载、PV与PVC)

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 出自B站博主教程笔记&#xff1a; 完整版Kubernetes&#xff08;K8S&#xff09;全套入门微服务实战项目&#xff0c;带你一站式深入掌握K8S核心能…

Tranformer分布式特辑

随着大模型的发展&#xff0c;如何进行分布式训练也成了每位开发者必备的技能。 单机训练 CPU OffloadingGradient Checkpointing 正向传播时&#xff0c;不存储当前节点的中间结果&#xff0c;在反向传播时重新计算&#xff0c;从而起到降低显存占用的作用 Low Precision Da…

HarmonyOS 是如何实现一次开发多端部署 -- HarmonyOS自学1

一次开发多端部署遇到的几个关键问题 为了实现“一多”的目标&#xff0c;需要解决如下三个基础问题&#xff1a; 问题1&#xff1a;页面如何适配 不同设备间的屏幕尺寸、色彩风格等存在差异&#xff0c;页面如何适配。 问题2&#xff1a;功能如何兼容 不同设备的系统能力…

身份证实名认证接口如何用C#实现

一、什么是身份证实名认证&#xff1f; 身份证实名认证又叫身份证实名核验、身份证二要素、身份实名核验、身份证验证&#xff0c;输入姓名、身份证号&#xff0c;校验此两项是否匹配&#xff0c;同时返回生日、性别、籍贯等信息&#xff0c;同时支持港澳台证件核验。 二、身…

【Three.js】实现护罩(防御罩、金钟罩、护盾)效果

前言&#xff1a; 在这篇博客中&#xff0c;我们将使用 Three.js 从零开始生成一个护罩效果。护罩将使用自定义的 Shader 材质&#xff0c;带有动画效果&#xff0c;最终呈现一个视觉上酷炫的护罩。此篇文章的重点将放在如何生成一个3D护罩&#xff0c;其它功能将在之后的博客…

SprinBoot+Vue旅游网站的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质…

AI和新基建赋能智慧工地超融合管理平台解决方案

1. 项目背景与需求 电力行业的工程管理正朝着智慧化发展&#xff0c;但目前仍处于起步阶段。为满足数字化、网络化、智能化的发展需求&#xff0c;需要构建一个高效综合监控平台&#xff0c;实现对电力项目全过程的精益化管控。 2. 综合管理平台的构建 该平台集成了超融合实…

【Visual Studio 报错】未加载 wntdll.pdb(一种可行的解决办法)

调试程序时&#xff0c;会出现下面这个报错 分析原因&#xff1a; 出现未加载 wntdll.pdb 报错大概率是你的指针使用错误 &#xff0c;比如使用野指针、越界访问、或者堆区空间释放方式错误等。 这里以 堆区空间释放方式错误 为例子 1、堆区开辟的数组空间使用 delete 释放 …

Java 日志

日志就是为了将程序的运行状况保存到文件中去。 命名的一个小细节&#xff1a; 比如把信息保存到文件中这个方法的名字可以写为infoToFile&#xff0c;有个人为了偷懒&#xff0c;写成info2File&#xff0c;发现效果还挺好&#xff0c;一下就能分清两个单词&#xff0c;所以后…

windows版本mysql8.2忘记密码

忙了一年的项目终于有点空闲时间了&#xff08;996累成狗&#xff09;&#xff0c;想折腾点开源项目&#xff0c; 结果发现忘了本地mysql密码&#xff0c;查了一些资料&#xff0c;记录如下&#xff1a; --windows mysql8.2忘记密码&#xff08;思路整理&#xff1a;先无密码…

【信创建设】信息系统信创建设整体技方案(word原件完整版)

信创&#xff0c;即“信息技术应用创新”。我国自主信息产业聚焦信息技术应用创新&#xff0c;旨在通过对IT硬件、软件等各个环节的重构&#xff0c;基于我国自有IT底层架构和标准&#xff0c;形成自有开放生态&#xff0c;从根本上解决本质安全问题&#xff0c;实现信息技术可…