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

MATLAB系列08:输入/输入函数

MATLAB系列08:输入/输入函数

  • 8. 输入/输入函数
    • 8.1 函数textread
    • 8.2 关于load和save命令的进一步说明
    • 8.3 MATLAB文件过程简介
    • 8.4 文件的打开和关闭
      • 8.4.1 fopen函数
      • 8.4.2 fclose函数
    • 8.5 二进制 I/O 函数
      • 8.5.1 fwrite 函数
      • 8.5.2 fread函数
    • 8.6 格式化 I/O 函数
      • 8.6.1 fprintf函数
      • 8.6.2 格式转换指定符的理解
      • 8.6.3 如何使用格式字符串
      • 8.6.4 fscanf 函数
      • 8.6.5 fgetl函数
      • 8.6.6 fgets 函数
    • 8.7 格式化和二进制 I/O 函数的比较
    • 8.8 文件位置和状态函数
      • 8.8.1 exist函数
      • 8.8.2 函数ferror
      • 8.8.3 函数foef
      • 8.8.4 函数ftell
      • 8.8.5 函数frewind
      • 8.8.6 函数fseek
    • 8.9 函数uiimport
    • 8.10 总结

8. 输入/输入函数

8.1 函数textread

它可以按列读取 ascii 文件中的元素,每一列中可能含有不同的数据类型。这函数读取其他程序生成的数据表时非常地有用。

假设test_input.dat文件如下:

[first, last, blood, gpa, age, answer] =
textread('test_input.dat','%s %s %s %f %d %s')

读取命令和结果:

>> [first, last, blood, gpa, age, answer] =textread('test_input.dat','%s %s %s %f %d %s')first =2×1 cell 数组{'James'}{'Sally'}last =2×1 cell 数组{'Jones'}{'Smith'}blood =2×1 cell 数组{'O+'}{'A+'}gpa =3.51003.2800age =2223answer =2×1 cell 数组{'Yes'}{'No' }

这个函数可以通过在格式描述符前面加一个星号的方式来跳过某些所选项。例如,下面的语句只从文件只读取 first, last 和 gpa。

>> [first, last, gpa] =textread('test_input.dat','%s %s %*s %f %*d %*s')first =2×1 cell 数组{'James'}{'Sally'}last =2×1 cell 数组{'Jones'}{'Smith'}gpa =3.51003.2800

函数 textread 要比 load 命令简单有效的多。 load 命令假设输入文件中的所有数据都是同一类型——它不支持在不同的列上有不同的数据。此外,它把所有的数据都存储在一个数据中。相反地,函数 textread 允许每一列都有独立的变量,当和由不同类型的数据组成的列运算时,它更加的方便。

8.2 关于load和save命令的进一步说明

save 命令把 MATLAB 工作区数据存储到硬盘, load 命令把硬盘上的数据拷贝到工作区中。 save 命令即可用特殊的二进制格式 mat­file 存储数据,也可用普通的 ascii 码格式存储数据。 save 命令的形式为

save filename [list of variables] [options]

save命令的参数:

image-20240916112757277

load命令参数:

image-20240916113045930

这两个命令的优点:

  1. 易于使用
  2. mat文件的平台独立
  3. mat文件存储数据是高精度的
  4. mat文件存储了工作区每一个变量的所有信息

8.3 MATLAB文件过程简介

在 MATLAB 中有一种非常灵活的读取/写入文件的方法,不管这个文件是在磁盘还是在磁带上或者是其他的存储介质。这种机制就叫做文件标识(file id)(有时可简写为 fid),当文件被打开,读取,写入或操作时,文件标识是赋值于一个文件的数。文件标识是一个正整数。两种文件标识是公开的——文件标识 1 是标准输出机制,文件标识 2 是标准错误机制(stderr)。其他的文件标识,在文件打开时创立,文件关闭时消逝。

常用控制磁盘文件的输入或输出的函数:

image-20240916113402531

我们可以用 fopen 语句把文件标识传递给磁盘文件或设备,用 fclose 语句把他们从中分开。一旦一个文件用 fopen 语句得到一个文件标识,我们就可以利用 MATLAB 输入输出语句。当我们对这个文件操作完后, fclose 语句关闭并使文件标识无效。当文件打开时,函数 frewind和 fseek 常用于改变当前文件读取和写入的位置。

8.4 文件的打开和关闭

8.4.1 fopen函数

fopen 函数打开一个文件并对返回这个文件的文件标识数。它的基本形式如下:

fid = fopen(filename, permission)
[fid, message] = fopen(filename, permission)
[fid, message] = fopen(filename,permission, format)

其中 filename 是要打开的文件的名字, permission 用于指定打开文件的模式, format 是一个参数字符串,用于指定文件中数据的数字格式。如果文件被成功打开,在这个语句执行之后, fid 将为一个正整数, message 将为一个空字符。如果文件打开失败,在这个语句执行之后, fid 将为-1, message 将为解释错误出现的字符串。

permission 的字符串如表:

image-20240916113903073

对于一些如 PC 一样的平台,它更重要的是区分文本文件和二进制文件。如果文件以文本格式打开,那么一个“t”就应加入到 permission 字符串中(例如“rt”或“rt+”)。如果是以二进制模式找开,那么“b”应加到 permission 字符串中(例如“rb”)。这实际上是不需要的,因为文件默认打开的方式是二进制模式。文本文件和二进制文件在 Unix系统上是没有区别的,所以在这系统上, r 和 b 都不需要。

一些正确应用 fopen 函数的例子:

  1. 为输入而打开一二进制文件

    fid = fopen('example.dat','r')
    
  2. 为文本输出打开一文件

    重写:权限字符串“wt”指定这个文件为新建文本文件。

    fid = fopen('outdat','wr')
    

    续写:权限运算符“at”指定一个我们想要增加数据的文本文件。

    fid = fopen('outdat','at')
    
  3. 以读写模式打开文件

    fid = fopen('junk', 'r+')
    

    fid = fopen('junk','w+')
    

    第一个语句与第二个语句的不同为第一句打开已存在文件,而第二个语句则会删除已存在的文件

8.4.2 fclose函数

fclose 函数用于关闭一文件。它的形式为

status = fclose(fid)
status = fclose('all')

其中 fid 为文件标识, status 是操作结果,如果操作成功,status 为 0,如果操作失败,status 为-1。函数 status = fclose(‘all’)关闭了所有的文件,除了 stdout( fid = 1)和 stderr( fid = 0)。如果所有的文件关闭成功, status 将为 0,否则为-1。

8.5 二进制 I/O 函数

8.5.1 fwrite 函数

函数 fwrite 以自定义格式把二进制数据写入一文件。它的形式为

count = fwrite(fid, array, precision)
count = fwrite(fid, array, precision skip)

其中 fid 是用于 fopen 打开的一个文件的文件标识, array 是写出变量的数组, count 是写入文件变量的数目。MATLAB以列顺序输出数据,它的含义为第一列全部输出后,再输出第二列等等。例如,如果 a r r a y = [ 1 2 3 4 5 6 ] \mathrm{array}=\begin{bmatrix}1&2\\3&4\\5&6\end{bmatrix} array=135246,那么数据输出的顺序为 1, 3, 5, 2, 4, 6。

MATLAB精度字符串如下:

image-20240916125359647

选择性参数 skip 指定在每一次写入输出文件之前要跳过的字节数。在替换有固定长度的值的时侯,这个参数将非常的有用。注意如果 precision 是一个像“bitN”或“ubitN”的一位格式, skip 则用位当作单位。

8.5.2 fread函数

函数 fread 读取用用户自定义格式从一文件中读取二进制数据。它的格式如下:

[array, count] = fread(fid, size, precision)
[array, count] = fread(fid, size, precision, skip)

其中 fid 是用于 fopen 打开的一个文件的文件标识, array 是包含有数据的数组, count是读取文件中变量的数目, size 是要读取文件中变量的数目。

size参数的三种形式:

  1. n:准确地读取 n 个值。执行完相应的语句后, array 将是一个包含有 n 个值的列向量
  2. Inf:读取文件中所有值。执行完相应的语句后, array 将是一个列向量,包含有从文件所有值
  3. [n,m]:从文件中精确定地读取 n×m 个值。 array 是一个 n×m 的数组

如果 fread 到达文件的结尾,而输入流没有足够的位数写满指定精度的数组元素, fread就会用最后一位的数填充,或用 0 填充,直到得到全部的值。如果发生了错误,读取将直接到达最后一位。

8.6 格式化 I/O 函数

8.6.1 fprintf函数

函数 fprintf 把以户自定义格式编写的格式化数据写入一个文件。它的形式为

count = fprintf(fid, format, val1, val2, ...)
fprintf(format, val1, val2, ...)

其中 fid 是我们要写入数据那个文件的文件标识, format 是控制数据显示的字符串。如果 fid 丢失,数据将写入到标准输出设备(命令窗口)。格式( format)字符串指定队列长度,小数精度,域宽和输出格式的其他方面。如图

image-20240916130338813

格式转换指定符:

image-20240916130629557

格式标识(修饰符):

image-20240916130704135

格式字符串的转义字符:

image-20240916130739780 image-20240916130802579

8.6.2 格式转换指定符的理解

一些例子

  1. 显示十进制整数数据

    image-20240916131109346
  2. 显示浮点数数据

    image-20240916131132142 image-20240916131146577
  3. 显示字符数据

    image-20240916131219260

8.6.3 如何使用格式字符串

当函数 fprintf 执行时,函数 fprintf 的输出参数列表将会按格式字符串的指示输出。这个函数从从变量的左端和格式字符的左端开始执行,并从左向右扫描,输出列表的第一个值与格式字符串中第一个格式输出符联合,等等。在输出参数列表中的值必须是相同的类型,格式必须与对应的格式描述符相对应,否则的话,意外的结果将会产生。例如,假设我们要用%c 或%d 描述符显示浮点数 123.4,这个描述符将会全部被忽略,这个数将会以科学记数的方式打印出来。

  1. 按从左向右的顺序扫描格式字符串。

    >> a = 10; b = pi; c = 'Hello';
    fprintf('Output: %d %f %s\n', a, b, c);
    Output: 10 3.141593 Hello
    
  2. 在函数 fprintf 运行完所有的变量之前,如果扫描还未到达格式字符串的结尾,程序再次从头开始扫描格式字符串。

    >> a = [10 20 30 40];
    fprintf('Output = %4d %4d\n',a);
    Output =   10   20
    Output =   30   40
    
  3. 如果函数 fprintf 在到达格式字符结束之前运行完所有的变量,格式字符串的应用停止在第一个格式指定符,而没有对应的变量,或者停止在格式字符串的末端。

    >> a = 10; b = 15; c = 20;
    fprintf('Output = %4d\nOutput = %4.1f\n', a, b, c);
    Output =   10
    Output = 15.0
    Output =   20
    Output = >> 
    

    格式字符串的应停止在%4.1f。

8.6.4 fscanf 函数

函数 fscanf 可以从一个文件中按用户自定义格式读取格式化数据。形式如下:

array = fscanf(fid, format)
[array, count] = fscanf(fid, format, size)

其中 fid 是所要读取的文件的文件标识( fileid), format 是控制如何读取的格式字符串, array 是接受数据的数组,输出参数 count 返回从文件读取的变量的个数。

size参数的三种形式:

  1. n:准确地读取 n 个值。执行完相应的语句后, array 将是一个包含有 n 个值的列向量
  2. Inf:读取文件中所有值。执行完相应的语句后, array 将是一个列向量,包含有从文件所有值
  3. [n,m]:从文件中精确定地读取 n×m 个值。 array 是一个 n×m 的数组

函数 fscanf把文件中的数据与文件字符串的格式转换指定符进行对比。只要两者区配, fscanf 把值进行转换并把它存储在输出数组中。这个过程直到文件结束或读取的文件当数目达到了 size ,数组才会结束,无论那一种情况先出现。如果文件中的数据与格式转换指定符不匹配, fscanf 的操作就会突然中止。示例:

文件x.dat内容如下:

10.00 20.00
30.00 40.00
  1. >> fid=fopen("x.dat",'r')fid =3>> [z, count] = fscanf(fid, '%f')z =10203040count =4>> fclose(fid)ans =0
    
  2. >> [z, count] = fscanf(fid, '%f', [2 2])z =10    3020    40count =4>> fclose(fid)ans =0
    
  3. >> fid=fopen("x.dat",'r')fid =3>> [z, count] = fscanf(fid, '%d', Inf)z =10count =1>> fclose(fid)ans =0
    

    z 为 10, count 的值为 1。这种情况的发生是因为 10.00 的小数点与格式转义指定符不匹配,函数 fscanf 函数停止在第一次出现不匹配时。

  4. >> fid=fopen("x.dat",'r')fid =3>> [z, count] = fscanf(fid, '%d.%d',[1 Inf])z =10     0    20     0    30     0    40     0count =8>> fclose(fid)ans =0
    

    z 为行向量[10 0 20 0 30 0 40 0], count 的值为 8。这种情况的发生是因为小数点与格式转义指定符匹配,小数点前后的数可以看作独立的整数。

  5. >> fid=fopen("x.dat",'r')fid =3>> [z, count] = fscanf(fid, '%c')z ='10.00 20.0030.00 40.00'count =24>> fclose(fid)ans =0
    

    变量 z 是一个包含文件中每一个字符的行向量,包括所有的空格和换行符!变量 count等于文件中字符的个数。

  6. >> fid=fopen("x.dat",'r')fid =3>> [z, count] = fscanf(fid, '%s')z ='10.0020.0030.0040.00'count =4>> fclose(fid)ans =0
    

    z 是一个行向量,包括 20 个字符 10.0020.0030.0040.00, count 为 4。这种结果的产生是因为字符串指定符忽略空白字符,这个函数在这个文件中发现 4 个独立的字符串

fscanf的格式转化指定符:

image-20240916134126001

8.6.5 fgetl函数

函数 fgetl 从一文件中把下一行(最后一行除外)当作字符串来读取。它的形式为

line = fgetl(fid)

如果 fid 是我们所要读取的文件的标识(file id)。 line 是接受数据的字符数组。如果函数 fgetl 遇到文件的结尾, line 的值为-1。

8.6.6 fgets 函数

函数 fgets 从一文件中把下一行(包括最后一行)当作字符串来读取。它的形式为

line = fgets(fid)

如果 fid 是我们所要读取的文件的标识(file id)。 line 是接受数据的字符数组。如果函数 fgets 遇到文件的结尾, line 的值为-1。

8.7 格式化和二进制 I/O 函数的比较

image-20240916135153948

8.8 文件位置和状态函数

在打开文件之前, MATLAB 函数 exist 用于判断这个文件是否存在。一旦一个文件打开,我们就可以用函数 feof 和 ftell 判断当前数据在文件中的位置。还用两个函数帮助我们在文件中移动: frewind 和 fseek。最后,当程序发生 I/O 错误时, MATLAB 函数 ferror 将会对这个错误进行详尽的描述。

8.8.1 exist函数

exist 函数用来检测工作区中的变量,内建函数或 MATLAB 搜索路径中的文件是否存在。它的形式如下

ident = exist('item');
ident = exist('item', 'kind');

'kind’的类型有:“var”,“file”,“builtin”和“dir”。

exist的返回值:

image-20240916135743709

8.8.2 函数ferror

在 MATLAB 的 I/O 系统中有许多的中间数据变量,包括一些专门提示与每一个打开文件相关的错误的变量。每进行一次 I/O 操作,这些错误提示就会被更新一次。函数 ferror 得到这些错误提示变量,并把它转化为易于理解的字符信息。

message = ferror(fid)
message = ferror(fid, 'clear')
[message, errnum] = ferror(fid)

这个函数会返回与 fid 相对应文件的大部分错误信息。它能在 I/O 操作进行后,随时被调用,用来得到错误的详细描述。如果这个文件被成功调用,产生的信息为“…”,错误数为 0。对于特殊的文件标识,参数“clear”用于清除错误提示。

8.8.3 函数foef

函数 feof 用于检测当前文件的位置是否是文件的结尾。它的形式如下

eofstat = feof(fid)

如果是文件的结尾,那么函数返回 1,否则返回 0。

8.8.4 函数ftell

函数 ftell 返回 fid 对应的文件指针读/写的位置。这个位置是一个非负整数,以 byte 为单位,从文件的开头开始计数。返回值-1 代表位置询问不成功。如果这种情况发生了,我们利用 ferror 得知为什么询问不成功。函数的形式如下:

position = ftell(fid)

8.8.5 函数frewind

函数 frewind 允许程序把文件指针复位到文件的开头,形式如下

frewind(fid)

这个函数不返回任何状态信息

8.8.6 函数fseek

函数 fseek 允许程序把文件指针指向文件中任意的一个位置。函数形式如下

status = fseek(fid, offset, origin)

函数用 offsett 和 origin 来重设 fid 对应文件的文件指针。 offset 以字节为单位,带有一个正数,用于指向文件的结尾,带有一个负数,用于指向文件的开头。 origin 是一个字符串,取值为下面三个中的一个。

  • bof文件的开始位置
  • cof指针中的当前位置
  • eof 文件的结束位置

8.9 函数uiimport

函数是一种基于 GUI 的方法从一个文件或从剪贴板中获取数据。这个命令的形式如下

uiimport
structure = uiimport;

在第一种情况下,获取的数据可以直接插入当前的工作区。在第二种情况下,数据可以转化为一个结构数组。并保存在变量 structure 中。

8.10 总结

image-20240916141006196

相关文章:

MATLAB系列08:输入/输入函数

MATLAB系列08:输入/输入函数 8. 输入/输入函数8.1 函数textread8.2 关于load和save命令的进一步说明8.3 MATLAB文件过程简介8.4 文件的打开和关闭8.4.1 fopen函数8.4.2 fclose函数 8.5 二进制 I/O 函数8.5.1 fwrite 函数8.5.2 fread函数 8.6 格式化 I/O 函数8.6.1 f…...

《财富之眼:用经济思维看清世界》pdf电子书下载

《财富之眼:用经济思维看清世界》pdf电子书下载 内容简介 一切社会现象都是经济现象,我们只能赚到自己认知范围内的 钱。我国社会主要矛盾已经转化为人民日益增长的美好生活需要和不 平衡不充分的发展之间的矛盾,其中“不平衡不充分”很大程…...

QT中文乱码

文章目录 方法一方法二 方法一 fromLocal8Bit() 可以把中文转为Unicode eg:QString str QString::fromLocal8Bit(“中文简体”); 方法二 预处理,根据设置的本地字符集转换,能正确转换含有中文的QString。 #pragma execution_character_set("u…...

如何安装1Panel面板并架设一个静态网站

我们通常要架设网站在vps上,就要用到面板,一般是宝塔,但这个面板收费项目较多,用着不太方便。相比宝塔面板,1panel面板是国内功能强大、操作简单、免费易学的Linux服务器管理面板。我们还可以使用一键代码来安装这个面…...

craco-less使用问题

craco-less使用问题 问题背景 前端是用React搭建,使用craco配置,相关库或插件版本如下 "craco/craco": "^7.1.0","react-scripts": "^5.0.1","craco-less": "^3.0.1"在生产环境&#xff…...

14 vue3之内置组件trastion全系列

前置知识 Vue 提供了 transition 的封装组件,在下列情形中,可以给任何元素和组件添加进入/离开过渡: 条件渲染 (使用 v-if)条件展示 (使用 v-show)动态组件组件根节点 自定义 transition 过度效果,你需要对transition组件的name属性自定义。…...

力扣(leetcode)每日一题 LCR 187 破冰游戏(还是考的约瑟夫环)

题干 社团共有 num 位成员参与破冰游戏,编号为 0 ~ num-1。成员们按照编号顺序围绕圆桌而坐。社长抽取一个数字 target,从 0 号成员起开始计数,排在第 target 位的成员离开圆桌,且成员离开后从下一个成员开始计数。请返回游戏结束…...

nginx模块篇(四)

文章目录 四、Nginx的扩展模块4.1. Lua4.1.1 概念4.1.2 特性4.1.3 应用场景4.1.4 Lua的安装4.1.5 Lua的语法4.1.5.1 第一个Lua程序4.1.5.2 Lua的注释4.1.5.3 标识符4.1.5.4 关键字4.1.5.5 运算符4.1.5.6 全局变量&局部变量4.1.5.7 Lua数据类型nilbooleannumberstringtablef…...

奇安信渗透2面经验分享

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…...

【计算机网络篇】电路交换,报文交换,分组交换

本文主要介绍计算机网络中的电路交换,报文交换,分组交换,文中的内容是我认为的重点内容,并非所有。参考的教材是谢希仁老师编著的《计算机网络》第8版。跟学视频课为河南科技大学郑瑞娟老师所讲计网。 目录 🎯一.划分…...

【TypeScript入坑】什么是TypeScript?

TypeScript入坑 什么是 TypeScriptTypeScript 的优势 什么是 TypeScript TypeScript:是 JavaScript 的超集,拥有类型机制,不会再浏览器直接执行,而是编译成 JavaScript 后才会运行。 超集(superset)&…...

Agile Modbus STM32裸机移植 从机使用

本教程手把手教你实现Agile Modbus,照抄就能成。 并且会解读函数功能含义。 1. 引言 Agile Modbus 是一个轻量级的 Modbus 协议栈,可以满足用户在任何场景下的需求。 功能 支持 rtu 和 tcp 协议,使用纯 C 语言开发,不涉及任何硬件接口,可以直接在任何形式的硬件上使用。由…...

mysql5.7.44安装教程

mysql5.7.44安装教程 1.windows 二进制压缩包从MySQL官网下载即可。 2.解压后,在根目录下创建my.ini文件 [mysql] # 设置 mysql 客户端默认字符集 default-character-setutf8 [mysqld] #设置 3306 端口 port 3306 # 设置 mysql 的安装目录 basedir …...

etsts

Dockerfile FROM apache/flink:1.19-scala_2.12-java8 RUN mkdir -p $FLINK_HOME/usrlib COPY MysqlFlinkCdcToKafka-jar-with-dependencies.jar $FLINK_HOME/usrlib/MysqlFlinkCdcToKafka-jar-with-dependencies.jar 构建镜像的命令 docker buildx build --load --platform l…...

C++_22_异常

文章目录 异常概念:**抛出异常:**关键字: **捕获异常:****栈解旋:****异常的接口声明:****异常对象的生命周期:**1 传递异常对象【不使用】2 传递异常对象指针【不使用】3 传递异常对象引用【**…...

开源 AI 智能名片链动 2+1 模式 O2O 商城小程序在社群活动中的应用与时机选择

摘要:本文探讨了开源 AI 智能名片链动 21 模式 O2O 商城小程序在社群经济中的重要性,着重分析了如何借助该小程序适时举办大型活动以维持和引爆社群活跃度。通过对活动时机选择的研究,强调了针对社群用户量身定制活动时机的必要性&#xff0c…...

从HarmonyOS升级到HarmonyOS NEXT-环信SDK数据迁移

2024年6月21日 HarmonyOS NEXT (后续称之为 NEXT) 正式发布,随着 NEXT 稳定版的逐渐临近,各个应用及SDK正在忙于适配 NEXT 系统,同样也面临着系统升级时如何对数据的迁移适配。本文通过使用环信 SDK 介绍如何从 Harmon…...

Spring Boot-Bean注入问题

在Spring Boot开发中,Bean的注入是核心概念之一,它确保了组件之间的依赖关系得以维护并方便管理。然而,在实际开发过程中,Bean的注入有时会出现问题 1. Spring Boot中的Bean注入 首先,了解Spring Boot中的Bean注入机…...

【在Linux世界中追寻伟大的One Piece】IP分片和组装的具体过程

目录 1 -> IP分片和组装的具体过程 2 -> 分片与组装的过程 2.1 -> 分片 2.2 -> 组装 3 -> 分片与组装的示意图 3.1 -> 分片组装场景 1 -> IP分片和组装的具体过程 16位标识(id):唯一的标识主机发送的报文。如果IP报文在数据链路层被分片…...

2024年中国研究生数学建模竞赛A/C/D/E题全析全解

问题一: 针对问题一,可以采用以下低复杂度模型,来计算风机主轴及塔架的疲劳损伤累积程度。 建模思路: 累积疲劳损伤计算: 根据Palmgren-Miner线性累积损伤理论,元件的疲劳损伤可以累积。因此,…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...