我有一个从 .csv 文件导入的列,其中包含作为“日期”的行。是否可以将这些值作为行名导入到 matlab 中的表中?
我所做的是创建一个变量来导入这些混合数值的日期。如何将这些值作为行名导入到我的表中?
由于 RowNames 是双精度类型,我如何“导入”字符日期?
有两种方法可以做到这一点。
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
. 原来的 (set 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});
目前尚不清楚您的表格/原始数据的格式是什么,但是当我来到这里寻找这个问题的答案时,我想我会根据我认为你的意思分享我发现的内容(我知道的老问题)。
考虑保存到 csv 文件的以下形式的表(没有行名)
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文档从包含行名称的电子表格创建表