目录

将表写入到文本文件

将表写入空格分隔的文本文件

将表写入包含行名称的文本文件

将外语日期写入文本文件

将外语字符写入文本文件

将引用文本写入 CSV 文件

将表写入到电子表格中特定的工作表和范围

写入包含任意变量名称的表格数据

将数据追加到表的底部

保留现有列宽

修改现有单元格格式

将表写入 XML 文件


writetable函数的功能是将表写入文件中。它的语法有:

writetable(T)
writetable(T,filename)
writetable(___,Name,Value)

writetable(T) 将表 T 写入逗号分隔的文本文件。文件名为表的工作区变量名称,附加扩展名 .txt。如果 writetable 无法根据输入表名称构造文件名,那么它会写入 table.txt 文件中。对于文本文件和电子表格文件,T 中每个变量的每列都成为输出文件中的一列。T 的变量名称将成为文件第一行的列标题。

对于 XML 文件,T 中的每列都成为输出文件中的一个 XML 节点。T 的变量名称成为输出 XML 文件中元素节点的名称。

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

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

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

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

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

.xml(适用于可扩展标记语言 (XML) 文件)

writetable(___,Name,Value) 通过一个或多个 Name,Value 对组参数指定的其他选项将表写入文件中,并且可以包含以前语法中的任何输入参数。

将表写入到文本文件

创建一个表。

T = table(['M';'F';'M'],[45 45;41 32;40 34],...{'NY';'CA';'MA'},[true;false;false])T=3×4 tableVar1      Var2       Var3     Var4 ____    ________    ______    _____M      45    45    {'NY'}    true F      41    32    {'CA'}    falseM      40    34    {'MA'}    false

将表写入逗号分隔的文本文件,并显示文件内容。

writetable(T)

writetable 将输出名为 T.txt 的文本文件。

type 'T.txt'Var1,Var2_1,Var2_2,Var3,Var4
M,45,45,NY,1
F,41,32,CA,0
M,40,34,MA,0

writetable 会向变量名称 Var2 附加一个唯一的后缀(位于两列相应数据的上方)。

将表写入空格分隔的文本文件

创建一个表。

T = table(['M';'F';'M'],[45 45;41 32;40 34],...{'NY';'CA';'MA'},[true;false;false])T=3×4 tableVar1      Var2       Var3     Var4 ____    ________    ______    _____M      45    45    {'NY'}    true F      41    32    {'CA'}    falseM      40    34    {'MA'}    false

将表写入名为 myData.txt 的以空格分隔的文本文件并显示文件内容。

writetable(T,'myData.txt','Delimiter',' ')type 'myData.txt'
Var1 Var2_1 Var2_2 Var3 Var4
M 45 45 NY 1
F 41 32 CA 0
M 40 34 MA 0

writetable 会向变量名称 Var2 附加一个唯一的后缀(位于两列相应数据的上方)。

将表写入包含行名称的文本文件

创建一个表。

LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];T = table(Age,Height,Weight,BloodPressure,...'RowNames',LastName)
T=5×4 tableAge    Height    Weight    BloodPressure___    ______    ______    _____________Smith       38       71       176       124     93  Johnson     43       69       163       109     77  Williams    38       64       131       125     83  Jones       40       67       133       117     75  Brown       49       64       119       122     80  

将表 T 写入名为 myPatientData.dat 的逗号分隔的文本文件,并显示文件内容。

writetable(T,'myPatientData.dat','WriteRowNames',true)
type 'myPatientData.dat'Row,Age,Height,Weight,BloodPressure_1,BloodPressure_2
Smith,38,71,176,124,93
Johnson,43,69,163,109,77
Williams,38,64,131,125,83
Jones,40,67,133,117,75
Brown,49,64,119,122,80

包含行名称的第一列的列标题为 Row。这是从属性 T.Properties.DimensionNames 获取的表的第一个维度名称。

将外语日期写入文本文件

将表中的英语日期转换为德语,并将表写入文件。创建包含英语日期的datatime数组的表。创建要与日期一起使用的数值数据的列向量。

D = datetime({'01-Jan-2014';'01-Feb-2014';'01-Mar-2014'});
D.Format = 'dd MMMM yyyy';X1 = [20.2;21.6;20.7];
X2 = [100.5;102.7;99.8];
T = table(D,X1,X2)
T = D             X1      X2  ________________    ____    _____01 January 2014     20.2    100.501 February 2014    21.6    102.701 March 2014       20.7     99.8

将表写入一个文本文件。使用 DateLocale 名称-值对组参数将日期的区域设置指定为德语,并在文本文件中显示日期。

writetable(T,'myfile.txt','DateLocale','de_DE');
type myfile.txtD,X1,X2
01 Januar 2014,20.2,100.5
01 Februar 2014,21.6,102.7
01 März 2014,20.7,99.8

将外语字符写入文本文件

当数据包含外语或非 ASCII 字符时,请使用 encoding 参数以确保文件正确写入。首先,将提供的表加载到工作区。然后使用默认编码将该表写入文件。最后,使用 'UTF-8' 编码写入该表,并检查结果。

加载包含表 T 的 Table_Japanese_Characters.mat。下面显示了表的预览。请注意,该表包含两列日语字符。

load('Table_Japanese_Characters.mat')

将表写入一个文件。writetable 函数将使用系统默认编码编写文件。根据系统设置,结果可能有所不同。要检查生成的文件,请使用 readtable 函数将该表重新读取到工作区。请注意 writetable 未成功写入包含外语字符的列(第 1 列和第 3 列)。

writetable(T,'myTable.txt')
myTable = readtable('myTable.txt')myTable=9×3 tableA        B          C   _____    ______    _______''     458.98    ''  ''     530.14    ''  ''      289.4    ''  ''      434.81    ''''    186.44    '' ''           0    ''   ''      231.29    ''''      311.86    ''''     239.93    ''   

如果表包含外语或非 ASCII 字符,必须使用 'Encoding' 参数以确保正确写入数据。将 'Encoding' 设置为 'UTF-8',以支持较广泛的外语和非 ASCII 字符。要检查生成的文件,请使用 readtable 函数将该表重新读取到工作区。使用正确的编码参数,writetable 函数可以成功写入数据。

writetable(T,'myTable_UTF8.txt','Encoding','UTF-8')
myTable_UTF8 = readtable('myTable_UTF8.txt','Encoding','UTF-8')myTable_UTF8=9×3 tableA         B            C     _______    ______    ___________'南西'     458.98    '冬の嵐'    '南東'     530.14    '冬の嵐'    '南東'      289.4    '冬の嵐'    '西'       434.81    '機器の故障' '中西部'    186.44    '深刻な嵐'  '西'            0    '攻撃'      '西'       231.29    '機器の故障' '西'       311.86    '機器の故障' '北東'     239.93    '火災'

将引用文本写入 CSV 文件

创建一个表。

T = table(['M';'F';'M'],[45;41;36],...{'New York, NY';'San Diego, CA';'Boston, MA'},[true;false;false])T=3×4 tableVar1    Var2          Var3           Var4 ____    ____    _________________    _____M       45     {'New York, NY' }    true F       41     {'San Diego, CA'}    falseM       36     {'Boston, MA'   }    false

将表写入一个名为 myData.csv 的逗号分隔的文本文件,并查看文件内容。使用 'QuoteStrings' 名称-值对组参数以确保第三列中的逗号不被视为分隔符。

writetable(T,'myData.csv','Delimiter',',','QuoteStrings',true)
type 'myData.csv'Var1,Var2,Var3,Var4
"M",45,"New York, NY",1
"F",41,"San Diego, CA",0
"M",36,"Boston, MA",0

将表写入到电子表格中特定的工作表和范围

创建一个表。

T = table(['M';'F';'M'],[45 45;41 32;40 34],...{'NY';'CA';'MA'},[true;false;false])T=3×4 tableVar1      Var2       Var3     Var4 ____    ________    ______    _____M      45    45    {'NY'}    true F      41    32    {'CA'}    falseM      40    34    {'MA'}    false

将表写入到名为 myData.xls 的电子表格中。将第一张电子表格中的数据包含在 5×5 的区域中,转角位于 B2 和 F6。可以通过指定对应于工作表的索引来更改要写入到的工作表。

writetable(T,'myData.xls','Sheet',1,'Range','B2:F6')

Excel® 使用 #N/A 填充电子表格的 B6 到 F6 行,因为指定的范围大于输入表 T 的大小。

写入包含任意变量名称的表格数据

可以写入包含变量名称的表格数据,变量名称可以包含任何字符(包括空格和非 ASCII 字符)。创建具有任意变量名称的表,并将该表写入一个文本文件。然后,读回表格数据,同时保留原始变量名称。

创建一个表,其中包含三个具有任意变量名称的变量。第一个和第三个变量名称包含空格和非 ASCII 字符。

LastName = {'Sanchez';'Johnson';'Li';'Diaz';'Brown'};
Age = [38;43;38;40;49];
Smoker = logical([1;0;1;0;1]);
varNames = {'Last Name','Age','Smoker (1 or 0)'};
T = table(LastName,Age,Smoker,'VariableNames',varNames)T=5×3 tableLast Name     Age    Smoker (1 or 0)___________    ___    _______________{'Sanchez'}    38          true      {'Johnson'}    43          false     {'Li'     }    38          true      {'Diaz'   }    40          false     {'Brown'  }    49          true     

将数据写入文件 'sampletable.txt'。

writetable(T,'sampletable.txt')

使用 readtable 读回表格数据。默认情况下,MATLAB® 将任何包含空格和非 ASCII 字符的变量名称转换为有效的 MATLAB® 标识符。例如,MATLAB® 将变量名称 'Last Name' 转换为 'LastName',将 'Smoker (1 or 0)' 转换为 'Smoker_1or0_'。要在保留变量名称的同时读取表格数据,请将 'VariableNamingRule' 参数设置为 preserve。

T_preserve = readtable('sampletable.txt',"VariableNamingRule","preserve")
T_preserve=5×3 tableLast Name     Age    Smoker (1 or 0)___________    ___    _______________{'Sanchez'}    38            1       {'Johnson'}    43            0       {'Li'     }    38            1       {'Diaz'   }    40            0       {'Brown'  }    49            1

将数据追加到表的底部

将数据作为新行追加到包含现有数据的表的底部。创建一个表。

InsectSpecies = {'Monarch Butterfly';'Seven-spot Ladybird';'Orchid Mantis';...'American Bumblebee';'Blue Dasher Dragonfly'};
InsectOrder = {'Lepidoptera';'Coleoptera';'Mantodea';'Hymenoptera';'Odonata'};
InsectFamily = {'Nymphalidae';'Coccinellidae';'Hymenopodidae';...'Apidae';'Libellulidae'};
PredatoryInsect = logical([0;1;1;0;1]); T = table(InsectSpecies,InsectOrder,InsectFamily,PredatoryInsect)
T=5×4 tableInsectSpecies            InsectOrder        InsectFamily       PredatoryInsect_________________________    _______________    _________________    _______________{'Monarch Butterfly'    }    {'Lepidoptera'}    {'Nymphalidae'  }         false     {'Seven-spot Ladybird'  }    {'Coleoptera' }    {'Coccinellidae'}         true      {'Orchid Mantis'        }    {'Mantodea'   }    {'Hymenopodidae'}         true      {'American Bumblebee'   }    {'Hymenoptera'}    {'Apidae'       }         false     {'Blue Dasher Dragonfly'}    {'Odonata'    }    {'Libellulidae' }         true      

将表 T 写入名为 InsectCollection.txt 的文本文件。

writetable(T,'InsectCollection.txt','WriteRowNames',true) 

创建表形式的新数据,以添加到现有表中。

newInsect = table({'Red-banded leafhopper'},{'Hemiptera'},{'Cicadellidae'},logical([0]))
newInsect=1×4 tableVar1                   Var2               Var3          Var4 _________________________    _____________    ________________    _____{'Red-banded leafhopper'}    {'Hemiptera'}    {'Cicadellidae'}    false

使用 'WriteMode','Append' 名称-值对组参数将 newInsect 追加到 InsectCollection.txt 文件。

writetable(newInsect,'InsectCollection.txt','WriteMode','Append',...'WriteVariableNames',false,'WriteRowNames',true)  

将该表读回工作区中。

readtable('InsectCollection.txt')
ans=6×4 tableInsectSpecies            InsectOrder        InsectFamily       PredatoryInsect_________________________    _______________    _________________    _______________{'Monarch Butterfly'    }    {'Lepidoptera'}    {'Nymphalidae'  }           0       {'Seven-spot Ladybird'  }    {'Coleoptera' }    {'Coccinellidae'}           1       {'Orchid Mantis'        }    {'Mantodea'   }    {'Hymenopodidae'}           1       {'American Bumblebee'   }    {'Hymenoptera'}    {'Apidae'       }           0       {'Blue Dasher Dragonfly'}    {'Odonata'    }    {'Libellulidae' }           1       {'Red-banded leafhopper'}    {'Hemiptera'  }    {'Cicadellidae' }           0  

保留现有列宽

将数据追加到文件底部时,保留电子表格文件的现有列宽。用文本数据创建工作区变量,然后创建一个表作为这些变量的容器。

state = {'Massachussetts';'California';'Minnesota';'Virginia'};
stateFlower = {'Trailing arbutus';'Golden Poppy';'Pink and White Lady''s Slipper';'Flowering dogwood'};
stateBird = {'Black-capped chickadee';'California Valley Quail';'Common Loon';'Cardinal'};
data = table(state,stateFlower,stateBird);

将该表写入名为 states_funfacts.xlsx 的电子表格文件。

writetable(data,'state_funfacts.xlsx')

创建另一个包含文本数据的表。

t = table({'Maryland';'New York'},{'Black-eyed Susan';'Rose'},{'Baltimore oriole';'Eastern bluebird'});

将该表追加到现有电子表格文件中。将 'AutoFitWidth' 指定为 false,以保留电子表格的现有列宽。

writetable(t,'state_funfacts.xlsx',"WriteMode","append","AutoFitWidth",false);

如果您将 'AutoFitWidth' 指定为 true 而不是 false,则 writetable 将调整电子表格的列宽以适合要写入的数据,而不是保留原始列宽。

修改现有单元格格式

编辑现有电子表格文件中的行,而不保留电子表格的单元格格式。电子表格文件 student_grades.xlsx 包含格式化的单元格。所有单元格都已填充颜色并具有边框,且标题单元格有加粗字体。

创建一个包含文本和数值数据的表。

Student = {'Mary';'John'};
Grade = [95;87];
t = table(Student,Grade)t=2×2 tableStudent     Grade________    _____{'Mary'}     95  {'John'}     87

用输入数据的表更新现有电子表格文件。将 'PreserveFormat' 指定为 false 以忽略电子表格文件的现有单元格格式。当您这样做时,会按以下方式修改 student_grades.xlsx。

writetable(t,'student_grades.xlsx','PreserveFormat',false);

如果在将数据写入现有电子表格文件时将 'PreserveFormat' 指定为 true 而不是 false,则 writetable 将保留电子表格的现有单元格格式。

writetable(t,'student_grades.xlsx','PreserveFormat',true);

 将表写入 XML 文件

创建一个包含数据的表,然后将其写入 XML 文件。通过指定其他名称-值参数,自定义 writetable 将表数据写入 XML 文件的方式。创建一个包含数据的表。

InsectSpecies = {'Monarch Butterfly';'Seven-spot Ladybird';'Orchid Mantis'; ...'American Bumblebee';'Blue Dasher Dragonfly'};
InsectOrder = {'Lepidoptera';'Coleoptera';'Mantodea';'Hymenoptera';'Odonata'};
InsectFamily = {'Nymphalidae';'Coccinellidae';'Hymenopodidae'; ...'Apidae';'Libellulidae'};
PredatoryInsect = logical([0;1;1;0;1]); T = table(InsectOrder,InsectFamily,PredatoryInsect);
T.Properties.RowNames = InsectSpecies;
head(T,5)ans=5×3 tableInsectOrder        InsectFamily       PredatoryInsect_______________    _________________    _______________Monarch Butterfly        {'Lepidoptera'}    {'Nymphalidae'  }         false     Seven-spot Ladybird      {'Coleoptera' }    {'Coccinellidae'}         true      Orchid Mantis            {'Mantodea'   }    {'Hymenopodidae'}         true      American Bumblebee       {'Hymenoptera'}    {'Apidae'       }         false     Blue Dasher Dragonfly    {'Odonata'    }    {'Libellulidae' }         true

将表 T 写入名为 InsectCollection.xml 的 XML 文件。将 'WriteRowNames' 指定为 true 以写入表行的名称。行名称显示为属于输出 XML 文件中 Row 元素节点的字段。通过将 'Insect' 指定为 'RowNodeName' 的值,自定义 XML 文件中的节点名称。

writetable(T,'InsectCollection.xml',"WriteRowNames",false,"RowNodeName","Insect")

显示 InsectCollection.xml 文件内容。

type InsectCollection.xml
<?xml version="1.0" encoding="UTF-8"?>
<table><Insect><InsectOrder>Lepidoptera</InsectOrder><InsectFamily>Nymphalidae</InsectFamily><PredatoryInsect>false</PredatoryInsect></Insect><Insect><InsectOrder>Coleoptera</InsectOrder><InsectFamily>Coccinellidae</InsectFamily><PredatoryInsect>true</PredatoryInsect></Insect><Insect><InsectOrder>Mantodea</InsectOrder><InsectFamily>Hymenopodidae</InsectFamily><PredatoryInsect>true</PredatoryInsect></Insect><Insect><InsectOrder>Hymenoptera</InsectOrder><InsectFamily>Apidae</InsectFamily><PredatoryInsect>false</PredatoryInsect></Insect><Insect><InsectOrder>Odonata</InsectOrder><InsectFamily>Libellulidae</InsectFamily><PredatoryInsect>true</PredatoryInsect></Insect>
</table>

如果未将 WriteRowNames 指定为 true,writetable 会跳过将表行名称写入文件的步骤。

Matlab中writetable函数的使用相关推荐

  1. Matlab中bwmorph函数的使用

    Matlab中bwmorph函数的使用 Matlab中提供了一个基于形态学的处理函数,即以膨胀.腐蚀等操作为基础,其语法格式如下: bw2=bwmorph(bw1,operation,n); 其中bw ...

  2. 9.matlab中repmat函数

    来源: matlab中repmat函数的用法 - CSDN博客 https://blog.csdn.net/anqier1009/article/details/5214978 B = repmat( ...

  3. 如何在Matlab中获取函数参数的数目?

    本图文详细介绍了Matlab中获取函数参数数目的方法.

  4. matlab s% d%,matlab中var函数的翻译For N-D arrays, VAR operates along the first

    matlab中var函数的翻译For N-D arrays, VAR operates along the first matlab中var函数的翻译 For N-D arrays, VAR oper ...

  5. 关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法

    关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 参考文章: (1)关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 (2)https://www.cn ...

  6. Matlab中Ksdensity()函数的用途 (2011-04-02 16:55:17)

    Matlab中Ksdensity()函数的用途 (2011-04-02 16:55:17) 转载▼ 标签: 杂谈 分类: Matlab应用 我们在统计数据处理时,经常计算一个样本的概率密度估计,也就是 ...

  7. cumsum在matlab中,matlab中cumsum函数和sum函数详解

    调用格式及说明 matlab中cumsum函数通常用于计算一个数组各行的累加值.在matlab的命令窗口中输入doc cumsum或者help cumsum即可获得该函数的帮助信息. 调用格式及说明 ...

  8. matlab中fprintf函数的具体使用方法

    matlab中fprintf函数的具体使用方法实例如下: fprintf函数可以将数据按指定格式写入到文本文件中.其调用格式为: 数据的格式化输出:fprintf(fid, format, varia ...

  9. Matlab中plot函数及legend函数详解

    Matlab中plot函数及legend函数详解 Matlab中plot函数及legend函数详解 Matlab中plot函数全功能解析 功能 二维曲线绘图 语法 plot(Y) plot(X1,Y1 ...

最新文章

  1. 【数字信号处理】傅里叶变换性质 ( 共轭对称、共轭反对称 与 偶对称、奇对称关联 | 序列对称分解定理 )
  2. 《基于张量网络的机器学习入门》学习笔记6
  3. 通俗易懂的Word Embeddings
  4. python函数理解_Python 知识理解---函数
  5. java servlet 部署到tomcat_如何把spring boot项目部署到tomcat容器中
  6. 两个int()方法的区别
  7. 用硬盘安装linux物理机,老爷机安装UBUNTU的悲剧之旅(附用GRUB2硬盘安装ubuntu教程)...
  8. CUDA的线程层次结构
  9. Hadoop完全分布式部署
  10. rust笔记11 生命周期引用有效性
  11. WinForm客户端限速下载(C#限速下载)
  12. GAMES101-现代计算机图形学入门-闫令琪 - lecture7 着色(Shading) - 课后笔记
  13. 计算机设备显示感叹号,设备管理器有感叹号和问号未知设备的解决方法
  14. 分布式搜索引擎es原理
  15. 无法修改linux密码Authentication token manipulation error 问题解决
  16. 激活pytorch环境
  17. 海外众筹:产品出海kickstarter海外众筹流程
  18. asp.net c# 通过消息队列处理高并发请求(以抢小米手机为例)
  19. stm32cubemx读写SDRAM-W9825G6KH
  20. Minitab 21 功能列表

热门文章

  1. 苹果cmsv10首涂模板第十四套酷黑渐变特色自适应高端模板
  2. 扎根发芽~蘑菇蘑菇何时开花~
  3. vue中使用el-table设置排名前三用金银铜的图标展示,其余排名正常展示
  4. DVD光盘容量有多大
  5. IBM面试:8元买鸡9元卖10元买回11元卖能挣几元?
  6. java 图像二值化阀值,阈值 二值化图像程序
  7. ROS 教程3 机器人语音 语音识别理解合成控制 ASR NLU TTS
  8. 解决Sentinel log base directory is: C:\Users***\logs\csp\
  9. python 学习分享-实战篇选课系统
  10. bat命令打开excel并调用VBA程序