0

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

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

由于 RowNames 是双精度类型,我如何“导入”字符日期?

4

3 回答 3

0

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

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

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

在此处输入图像描述

于 2017-09-12T11:54:17.873 回答
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. 原来的 (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});
于 2020-03-30T14:48:17.020 回答
0

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

考虑保存到 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文档从包含行名称的电子表格创建表

于 2019-05-01T02:23:47.720 回答