我可以在matlab中将列值更改为RowNames

时间:2017-09-12 08:48:38

标签: matlab rowname

我有一个从.csv文件导入的列,其中包含“Dates”行。是否可以将这些值作为rownames导入到matlab中的表中?

我所做的是创建一个变量来导入这些混合数值的日期。如何将这些值作为rownames导入到我的表中?

由于RowNames是double类型,我如何'导入'char日期?

3 个答案:

答案 0 :(得分:0)

您可以使用导入助手。 如果您转到“主页”选项卡>导入数据。选择文件。

您可以选择导入数据的类型:表(带名称),列向量(带有这些名称的分隔变量),...

如果您想知道如何编码,您可以转到"导入选择"按钮并单击"生成脚本"。它创建了一个脚本,您可以在其中查看必要的代码,以执行助手可以执行的操作。

enter image description here

答案 1 :(得分:0)

目前尚不清楚表的格式/原始数据是什么,但是当我来到这里寻找问题的答案时,我想我将根据我的意思分享我发现的内容(旧问题我知道)。

请考虑将以下形式的表保存到csv文件中(没有RowName)

B = table({'01/Jan' ;'02/Jan'; '03/Jan' ;'04/Jan'; '05/Jan'},[23;5;17;40;19],[38;43;45;40;49],...
'VariableNames',{'Date','AverageScore' 'MaxScore'})

您可以使用以下方式在表中读取时指定第一列为行名:

myTable = readtable('tableB.csv','ReadRowNames',true)

请参阅readtable上的文档,标题为“从电子表格创建表,包括行名”

答案 2 :(得分:0)

有两种方法可以做到这一点。

1。导入期间(readtable

opts = detectImportOptions($File_Path);
opts.RowNamesColumn = $Column_Index;
Table = readtable($File_Path, opts);

第二行代码可能会有所不同,具体取决于您要读取的文件类型。例如,如果您的文件属于“电子表格”,其导入选项opts应该为SpreadsheetImportOptions,则第二行代码应更改为

opts.RowNamesRange = $Column_Index or '$Column_Index1:$Column_Index2'

对于其他两种文件类型:导入选项为DelimitedTextImportOptions的“文本文件”和导入选项为FixedWidthImportOptions的“固定宽度文本文件”。原始的(设置RowNamesColumn)有效。

如果您无法确定文件属于哪种类型。运行opts后,您可以在opts = detectImportOptions($File_Path);中找到答案(或直接删除分号并运行它)

2。转换表格(table

Table = readtable($File_Path); % Ignore this if you got target table already
Table.Properties.RowNames = string(Table{:,$Column_Index});