Matlab 将数据写入excel文件

Matlab 将数据写入excel文件

函数:writematrix

功能:将数据写入文件

语法

writematrix(A)
writematrix(A,filename)
writematrix(___,Name,Value)

说明

writematrix(A) 将同构数组 A 写入以逗号分隔的文本文件。文件名为数组的工作区变量名称,附加扩展名 .txt。如果 writematrix 无法根据数组名称构造文件名,那么它会写入 matrix.txt 文件中。

A 中每个变量的每一列都将成为输出文件中的列。writematrix 函数会覆盖任何现有文件。

  writematrix(A, filename) 写入具有 filename 指定的名称和扩展名的文件。

writematrix 根据指定扩展名确定文件格式。扩展名必须是下列格式之一: 

  • .txt.dat 或 .csv(适用于带分隔符的文本文件)

  • .xls.xlsm 或 .xlsx(适用于 Excel® 电子表格文件)

  • .xlsb(适用于安装了 Windows® Excel 的系统上支持的 Excel 电子表格文件) 

writematrix(___,Name,Value) 在包括上述语法中任意输入参数的同时,还可通过一个或多个 Name,Value 对组参数指定其他选项来将数组写入文件中。

实例1:将矩阵写入到文本文件

创建一个矩阵,将其写入以逗号分隔的文本文件,然后用不同分隔符将该矩阵写入另一个文本文件。

在工作区中创建一个矩阵。

M = magic(5)
    M = 5×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

将矩阵写入逗号分隔的文本文件,并显示文件内容。writematrix 函数将输出名为 M.txt 的文本文件。

writematrix(M);
type 'M.txt'
17,24,1,8,15
23,5,7,14,16
4,6,13,20,22
10,12,19,21,3
11,18,25,2,9

要用不同分隔符将同一矩阵写入文本文件,请使用 'Delimiter' 名称-值对组。

writematrix(M,'M_tab.txt','Delimiter','tab');
type 'M_tab.txt'
17    24    1    8    15
23    5    7    14    16
4    6    13    20    22
10    12    19    21    3
11    18    25    2    9

实例2:将矩阵写入电子表格文件

创建一个矩阵,将其写入电子表格文件,然后读取并显示文件内容。

在工作区中创建一个矩阵。

M = magic(5)
M = 5×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

将该矩阵写入一个电子表格文件。

writematrix(M,'M.xls')

从 M.xls 读取并显示矩阵。

readmatrix('M.xls')
ans = 5×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

实例3:将矩阵写入指定的工作表和范围

创建一个矩阵,并将其写入电子表格文件中的指定工作表和范围。

在工作区中创建一个矩阵。

M = magic(5)
M = 5×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

将该矩阵写入 M.xls 文件中的第二个工作表,从第三行开始写入。

writematrix(M,'M.xls','Sheet',2,'Range','A3:E8')


读取并显示该矩阵。

readmatrix('M.xls','Sheet',2,'Range','A3:E8')
ans = 5×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

实例4:将数据追加到电子表格

在电子表格中现有数据的下方追加数据数组。

在工作区中创建两个矩阵。

M1 = magic(5)
M1 = 5×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9
M2 = [5 10 15 20 25; 30 35 40 45 50]
M2 = 2×5

     5    10    15    20    25
    30    35    40    45    50

将矩阵 M1 写入一个电子表格文件 M.xls.

writematrix(M1,'M.xls')

将矩阵 M2 中的数据追加到电子表格文件中现有数据的下方。

writematrix(M2,'M.xls','WriteMode','append')

阅读电子表格文件并显示矩阵。

readmatrix('M.xls')
ans = 7×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9
     5    10    15    20    25
    30    35    40    45    50

实例5:将矩阵数据追加到文本文件

在文本文件中现有数据的下方追加数据数组。

在工作区中创建两个矩阵。

fibonacci1 = [1 1 2 3; 5 8 13 21; 34 55 89 144]
fibonacci1 = 3×4

     1     1     2     3
     5     8    13    21
    34    55    89   144
fibonacci2 = [233 377 610 987]
fibonacci2 = 1×4

   233   377   610   987

将矩阵 fibonacci1 写入文本文件 fibonacci.txt.

writematrix(fibonacci1,'fibonacci.txt')

将 fibonacci2 中的数据追加到文本文件中现有数据的下方。

writematrix(fibonacci2,'fibonacci.txt','WriteMode','append')

读取文本文件并显示矩阵。

readmatrix('fibonacci.txt')
ans = 4×4

     1     1     2     3
     5     8    13    21
    34    55    89   144
   233   377   610   987

输入参数

A - 输入数据

      矩阵

输入数据,指定为矩阵。

filename - 文件名

    字符向量 | 字符串标量

文件名,指定为字符向量或字符串标量。

根据您写入的位置,filename 可以采用以下形式之一。

位置

形式

当前文件夹

要写入当前文件夹,请在 filename 中指定文件名。

示例:'myTextFile.csv'

其他文件夹

要写入不同于当前文件夹的文件夹,请在 filename 中指定完整或相对路径名称。

示例:'C:\myFolder\myTextFile.csv'

示例:'myFolder\myExcelFile.xlsx'

远程位置

要写入远程位置,filename 必须包含指定为统一资源定位器 (URL) 形式的文件的完整路径:

scheme_name://path_to_file/my_file.ext

根据远程位置,scheme_name 可以是下表中的值之一。

远程位置scheme_name
Amazon S3™s3
Windows Azure® Blob Storagewasbwasbs
HDFS™hdfs

有关详细信息,请参阅处理远程数据。

示例:'s3://bucketname/path_to_file/my_file.xlsx'

  • 如果 filename 包含文件扩展名,则写入函数基于扩展名确定文件格式。否则,写入函数会创建一个逗号分隔的文本文件,并附加扩展名 .txt。您也可以指定不带文件扩展名的 filename,然后添加 'FileType' 名称-值对组参数来指示文件类型。

  • 如果 filename 不存在,则写入函数会创建该文件。

  • 如果 filename 是一个现有文本文件的名称,则写入函数将覆盖该文件。

  • 如果 filename 是一个现有电子表格文件的名称,则写入函数会将数据写入指定位置,但不会覆盖输入数据范围之外的任何值。

数据类型: char | string

      名称-值参数

示例: 'FileType',text 指示变量名称不应作为输出文件的第一行包含在内。

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN 所示。

文本和电子表格文件

FileType - 文件类型
'text' | 'spreadsheet'

文件类型,指定为逗号分隔的对组,其中包含 'FileType' 和一个包含 'text' 或 'spreadsheet' 的字符向量或字符串。

'FileType' 名称-值对组必须与 filename 输入参数配合使用。如果 filename 输入参数包含标准文件扩展名,则无需指定 'FileType' 名称-值对组参数。以下标准文件扩展名由写入函数识别:

  • .txt.dat 或 .csv(适用于带分隔符的文本文件)

  • .xls.xlsm 或 .xlsx(适用于 Excel 电子表格文件)

  • .xlsb(适用于安装了 Windows Excel 的系统上支持的 Excel 电子表格文件)

示例: 'FileType','spreadsheet'

数据类型: char | string

DateLocale - 用于写入日期的区域设置
字符向量 | 字符串标量

用于写入日期的区域设置,指定为逗号分隔的对组,其中包含 'DateLocale' 和一个字符向量或字符串标量。在将 datetime 值写入文件时,请使用 DateLocale 指定 writematrix 写入月和星期几的名称以及缩写所用的区域设置。该字符向量或字符串采用 xx_YY 形式,其中 xx 是用于指示语言的小写 ISO 639-1 双字母代码,YY 是用于指示国家/地区的大写 ISO 3166-1 alpha-2 代码。有关区域设置的常见值的列表,请参阅 datetime 函数的 Locale 名称-值对组参数。

当日期可以写为 Excel 格式的日期时,写入函数将忽略 'DateLocale' 参数值。

示例: 'DateLocale','ja_JP'

数据类型: char | string

WriteMode - 写入模式
字符向量 | 字符串标量

写入模式,指定为以逗号分隔的对组,该对组由 'WriteMode' 和一个字符向量或字符串标量组成。根据文件类型选择一种写入模式。

文件类型

写入模式

文本文件

  • 'overwrite'(默认值)- 覆盖文件。

  • 'append' - 将数据追加到文件。

如果您指定的文件不存在,则写入函数会创建数据并将数据写入新文件。

电子表格文件

  • 'inplace'(默认值)- 仅更新输入数据占用的范围。写入函数不会更改输入数据所占范围之外的任何数据。

    • 如果没有指定工作表,则写入函数会写入第一个工作表。

  • 'overwritesheet' - 清空指定的工作表,并将输入数据写入已清空的工作表。

    • 如果没有指定工作表,则写入函数会清空第一个工作表,并将输入数据写入其中。

  • 'append' - 写入函数将输入数据追加到指定工作表的占用范围的底部。

    • 如果没有指定工作表,则写入函数会将输入数据追加到第一个工作表的占用范围的底部。

  • 'replacefile' - 从文件中删除所有其他工作表,然后清空指定的工作表并将输入数据写入其中。

    • 如果未指定工作表,则写入函数会从文件中删除所有其他工作表,然后清空第一个工作表并将输入数据写入其中。

    • 如果您指定的文件不存在,则写入函数会创建一个新文件,并将输入数据写入第一个工作表。

  • 当 WriteVariableNames 设置为 true 时,写入函数不支持 'append' 写入模式。

  • 对于电子表格文件:

    • 当写入模式为 'append' 时,写入函数不支持 Range 参数。

    • 如果您指定的文件不存在,则写入函数将执行与 'replacefile' 相同的动作。

示例: 'WriteMode','append'

数据类型: char | string

仅限文本文件

Delimiter - 字段分隔符
字符向量 | 字符串标量

字段分隔符,指定为逗号分隔的对组,由 'Delimiter' 和一个字符向量或字符串标量组成,该字符串标量包含以下设定符之一:

设定符

字段分隔符

','

'comma'

逗号。这是默认行为。

' '

'space'

空格

'\t'

'tab'

制表符

';'

'semi'

分号

'|'

'bar'

垂直条

您只能将 'Delimiter' 名称-值对组用于带分隔符的文本文件。

示例: 'Delimiter','space'

数据类型: char | string

QuoteStrings - 用于写入引用文本的指示符
true | false

用于写入引用文本的指示符,指定为 'QuoteStrings' 和 true 或 false

  • 如果 'QuoteStrings' 为 true,则该函数将文本括在双引号字符中,并用两个双引号字符替换文本两侧的任何双引号字符。这两个双引号字符也称为转义字符。

  • 如果 'QuoteStrings' 为 false,则按原样写入文本。

  • 如果未指定 'QuoteStrings',该函数将检查数据中由 'Delimiter' 名称-值参数指定的分隔符。如果在一列中找到分隔符,该列中的每个元素都将带双引号写入。

您只能将 'QuoteStrings' 名称-值参数用于带分隔符的文本文件。

Encoding - 字符编码方案
'UTF-8' (默认) | 'ISO-8859-1' | 'windows-1251' | 'windows-1252' | ...

与文件关联的字符编码方案,指定为以逗号分隔的对组,其中包含 'Encoding' 和 'system' 或标准字符编码方案名称。当您没有指定任何编码时,写入函数使用 UTF-8 来写入文件。

示例: 'Encoding','UTF-8' 使用 UTF-8 作为编码。

数据类型: char | string

仅限电子表格文件

Sheet - 要写入的工作表
字符向量 | 字符串标量 | 正整数

要写入的工作表,指定为逗号分隔的对组,包含 'Sheet' 和一个包含工作表名称或正整数(指示工作表索引)的字符向量或字符串标量。工作表名称不能包含冒号 (:)。要确定电子表格文件中工作表的名称,请使用 sheets = sheetnames(filename)。有关详细信息,请参阅 sheetnames。

按名称或索引指定要写入的工作表:

  • 名称 - 如果文件中不存在指定的工作表名称,则写入函数将在工作表集合的末尾添加一个新工作表。

  • 索引 - 如果指定的工作表索引大于工作表数,则写入函数会追加空工作表,直至工作簿中的工作表数等于工作表索引。写入函数还会生成一条警告,指示已添加新工作表。

您只能将 'Sheet' 名称-值对组用于电子表格文件。

示例: 'Sheet',2

示例: 'Sheet''MySheetName'

数据类型: char | string | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Range - 要写入的工作表的矩形部分
字符向量 | 字符串标量

要写入的工作表的矩形部分,指定为逗号分隔的对组,包含 'Range' 和一个采用以下格式之一的字符向量或字符串标量。

Range 的值的格式说明
'Corner1'

Corner1 指定要写入的区域的第一个单元格。写入函数从这个单元格开始写入数据。

示例:'Range','D2'

'Corner1:Corner2'

Corner1 和 Corner2 是用于定义要写入区域的两个对角。例如,'D2:H4' 表示工作表上两个角落 D2 和 H4 之间的 3×5 矩形区域。'Range' 名称-值对组参数不区分大小写,并使用 Excel A1 引用样式(请参阅 Excel 帮助)。

示例:'Range','D2:H4'

  • 如果指定的范围小于输入数据的大小,则写入函数只写入该范围能容纳的输入数据子集。

  • 如果指定的范围大于输入数据的大小,则写入函数将保留该区域的其余部分不变。

'Range' 名称-值对组只能与 Excel 文件配合使用。

示例: 'Range''A1:F10'

数据类型: char | string

UseExcel - 用于启动 Windows 版 Microsoft Excel 实例的标志
false (默认) | true

指明在写电子表格数据时是否启动 Microsoft® Excel(Windows 版)实例的标志,指定为以逗号分隔的对组,其中包含 'UseExcel' 和 true 或 false

您可以将 'UseExcel' 参数设置为下列值之一:

  • true - 写入函数在写入文件时启动 Microsoft Excel 的实例。

  • false - 写入函数在写入文件时不启动 Microsoft Excel 的实例。在此模式下操作时,写入功能支持的文件格式和交互式功能(例如公式和宏)有所不同。

UseExcel

true

false

支持的文件格式

.xls, .xlsx, .xlsm, .xltx, .xltm, .xlsb, .ods

.xls, .xlsx, .xlsm, .xltx, .xltm

支持交互功能,例如公式和宏

在 Windows 平台上写入电子表格文件时,如果您想启动 Microsoft Excel 实例,则将 'UseExcel' 参数设置为 true

AutoFitWidth - 自动调整列宽
true (默认) | false

自动调整列宽,指定为 true 或 false。如果指定值为 0 或 false,则 writematrix 不会自动调整列宽以适应单元格中的数据。

示例: 'AutoFitWidth',0

PreserveFormat - 保留单元格格式
true (默认) | false

保留现有电子表格的单元格格式,指定为 true 或 false。如果您指定 falsewritematrix 将不会保留电子表格的单元格格式。格式包括字体、单元格边框和着色单元格等元素。

将 datetime 数据写入电子表格文件时,必须将 'PreserveFormat' 和 'UseExcel' 名称-值对组都设置为 true,才能保留现有单元格的格式。如果将 'UseExcel' 设置为 false,同时将 'PreserveFormat' 设置为 true,则当将 datetime 数据写入文件时,writematrix 不会保留文件的现有单元格格式。

示例: 'PreserveFormat',false

局限性

  • 要将 'PreserveFormat' 名称-值对组设置为 true,您必须将 'UseExcel' 名称-值对组设置为 true

算法

有些情况下,writematrix 函数创建的文件不能准确表示输入数据。当您使用 readmatrix 函数来读取该文件时,就会注意到这一点。生成的数据可能不具备与原始数组完全相同的格式或内容。如果您需要原样保存数组并在以后检索它,以便能与具有相同数据和组织形式的原始数组精确匹配,则可将其另存为 MAT 文件。在以下情况下,writematrix 输出的数据不够精确:

  • writematrix 使用 long g 格式输出数值数据,并将分类数据或字符数据输出为不带引号的文本。

  • writematrix 将具有两个维度以上的数组输出为二维数组,并折叠尾部维度。

实例6:将 yflt 中的数据以列的方式写入到 excel 中:

% %%%% 将数据写入表格.
[row,col] = size(yflt);
if(row==1)
    yflt_T = yflt';
else
    yflt_T = yflt;
end
W_xyw = [ 1 2 3 3 7 6];
pathout = 'W_xyw.xlsx';
Title = ["nPLCs", "VPP", "RMS"];
% xlswrite(pathout,Title,1,'A1');
writematrix(Title, pathout, 'Range','1:3');%将数据写入表格.
% writematrix(yflt_T, pathout,'WriteMode','overwritesheet');%将数据写入表格.
writematrix(yflt_T, pathout,'WriteMode','append');%将数据追加到表格现有数据下方.

另请参阅

writetable | writetimetable | readmatrix | writecell

writetable | writetimetable | readmatrix | writecell

       

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

20240415,构造函数和析构函数,拷贝构造函数调用时机规则

二,对象的初始化和清理 2.1 构造函数和析构函数 解决初始化和清理问题,编译器自动调用,如果不提供,编译器提供,但空实现 构造函数:类名(){ };没用返回值也不写VOID&…

spring03:bean的自动装配

spring03:bean的自动装配 文章目录 spring03:bean的自动装配前言:一、 在xml中显示的配置:分析: People类:Cat类:Dog类:1. 在xml中显示的配置: 二、 隐式的自动装配bean【…

2048天的创作旅程:坚持与成长

纪念成为创作者的2048天 一、引言二、坚持创作三、创作心情四、技术成长五、小结 💡一个热爱分享高性能服务器后台开发知识的博主,目标是通过理论与代码实践的结合,让世界上看似难以掌握的技术变得易于理解与掌握。技能涵盖了多个领域&#x…

R语言使用installr包对R包进行整体迁移

今天分享一个R语言的实用小技巧,如果咱们重新安装了电脑(我重装了电脑)或者因为需要卸载旧版本的R软件,安装新版本的R,那么必然会造成R包的库缺失,需要重新下载,有些还不是官方的R包&#xff0c…

页缓存(PageCache)和预读机制(readahead )

页缓存(PageCache)和预读机制(readahead ) 页缓存(PageCache)是操作系统(OS)对文件的缓存,用于加速对文件的读写。 page 是内存管理分配的基本单位, Page Cache 由多个 page 构成&…

linux项目部署 解决Nginx浏览器刷新出现404,但是不刷新是能够正常请求成功

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 提示:部署成功,访问登录页面登录也成功,强制刷新浏览器报404问题 进入到系统 刷新页面 解决流程 参考如图,再下面添加这条配置信息 location / {try_file…

如何用好PMP项目管理知识

PMP(Project Management Professional,项目管理专业人士)是由国际项目管理协会(PMI)颁发的全球最高级别的项目管理认证,认证需要通过严格的考试,并具备相应的工作经验和教育背景。 作为一名咨询师,我们经常…

攻防世界08-backup

8-backup 网页添加后缀下载源文件 在链接后面追加index.php.bak,会出现软件下载,下载后,用记事本的方式打开 此时flag就出现了 kali扫描 当你不知道后缀是什么的时候,可以用kali进行扫描 记得更改源为国内的镜像源 vim /etc/apt/sources.…

配置linux的oracle 21c启停服务

一、配置启停 1、使用root用户登陆 su - root 2、修改oratab文件 修改oratab文件,将红框里面的N改为“Y”,使启停脚本能够生效 vi /etc/oratab 3、验证 配置好后就能够使用 dbshut 停止服务 和 dbstart 启动服务 了 2.1启动服务 su - oracle dbstart…

哈希函数的简单介绍

哈希函数: hash: 把....弄糟(乱) 又称为散列函数,杂凑函数 什么是哈希表? 哈希表简单来说可以看作是是对数组的升级,(也有不少人认为哈希表的本质就是数组),那么哈希表和数组的具体联系和区…

4.Spring AOP

4.1 Spring AOP的基本概念 4.1.1 AOP的概念 在业务处理代码中,通常都有日志记录、性能统计、安全控制、事务处理、异常处理等操作。尽管使用OOP可以通过封装或继承的方式达到代码的重用,但仍然存在同样的代码分散到各个方法中。因此,采用OO…

Linux学习-数据库

数据库软件: 关系型数据库: Mysql Oracle SqlServer Sqlite 非关系型数据库: Redis NoSQL 1.数组、链表、文件、数据库 数组、链表: 内存存放数据的方式(代码运行结束、关机数据丢失) 文件、…

网络安全赛事中开源威胁情报的妙用

写在前面 近期参与了一场网络安全赛事,一些题目的解法涉及到开源网络威胁情报,遂对相关题目及涉及到的知识点进行分析。 什么是OSCTI 开源网络威胁情报 (Open-Source Cyber Threat Intelligence,OSCTI)是详细描述针对某个组织网络安全威胁的数据。OSC…

【go从入门到精通】探索延迟调用(defer)用法和陷阱

作者简介: 高科,先后在 IBM PlatformComputing从事网格计算,淘米网,网易从事游戏服务器开发,拥有丰富的C,go等语言开发经验,mysql,mongo,redis等数据库,设计模…

flink network buffer

Flink 的网络协议栈是组成 flink-runtime 模块的核心组件之一,是每个 Flink 作业的核心。它连接所有 TaskManager 的各个子任务(Subtask),因此,对于 Flink 作业的性能包括吞吐与延迟都至关重要。与 TaskManager 和 JobManager 之间通过基于 A…

Linux标准c库操作(4.15)

fopen函数“const char *mode”参数选项。 结果&#xff1a; 标准库c写入结构体到文件&#xff1a; #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> #include <unistd.h> #include <string.h> #in…

如何在Vue3中使用H.265视频EasyPlayer.js流媒体播放器?

H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器&#xff0c;可支持多种流媒体协议播放&#xff0c;可支持H.264与H.265编码格式&#xff0c;性能稳定、播放流畅&#xff0c;能支持WebSocket-FLV、HTTP-FLV&#xff0c;HLS&#xff08;m3u8&#…

Java | Leetcode Java题解之第28题找出字符串中第一个匹配项的下标

题目&#xff1a; 题解&#xff1a; class Solution {public int strStr(String haystack, String needle) {int n haystack.length(), m needle.length();if (m 0) {return 0;}int[] pi new int[m];for (int i 1, j 0; i < m; i) {while (j > 0 && needl…

Linux学习之路 -- 进程篇 -- PCB介绍 -- 进程的孤儿和僵尸状态

前面介绍了进程的各种状态&#xff0c;下面介绍比较特殊的两种状态 -- 孤儿和僵尸&#xff08;僵死&#xff09;。 一、僵尸状态 我们创建进程的目的其实就是想要进程帮我们执行一些任务&#xff0c;当任务被执行完后&#xff0c;进程的使命其实就已经完成了。此时我们就需要…

牛客Linux高并发服务器开发学习第一天

Linux开发环境搭建 安装Xshell 7远程连接虚拟机的Ubuntu 安装Xftp 7可以传输文件(暂时还没使用) 安装VMware Tools可以直接从Windows系统向虚拟机Linux系统拖拽文件实现文件交互。 安装CScode可以远程连接Linux系统进行代码的编写。&#xff08;Windows系统与Linxu系统公钥…