首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Matlab:读取具有多种数据类型的csv --代码有什么问题

Matlab:读取具有多种数据类型的csv --代码有什么问题
EN

Stack Overflow用户
提问于 2016-06-25 00:34:24
回答 1查看 49关注 0票数 0

我的数据文件是这样的(它是一个csv,分隔符是','):

代码语言:javascript
运行
AI代码解释
复制
ID  Date     X  Y   Z
2003    Mon Mar 21 11:01:53 EDT 2016    -0.002261639    -0.002261639    -0.003986359
2003    Mon Mar 21 11:01:54 EDT 2016    0.010383129 0.010383129 0.145069122
2003    Mon Mar 21 11:01:55 EDT 2016    0.082943439 0.082943439 0.022849083
2003    Mon Mar 21 11:01:57 EDT 2016    0.070415497 0.070415497 0.234290123

我想用textscan来读取它们。下面是我的代码:

代码语言:javascript
运行
AI代码解释
复制
clear;close all;

fid=fopen('./test.csv');
data = textscan(fid, '%s %s %f %f %f','Delimiter',',');
fclose(fid);

我不明白,为什么在运行代码后,' data‘是这样的:data=

代码语言:javascript
运行
AI代码解释
复制
{1x1 cell}    {1x1 cell}    [0x1 double]    [0x1 double]    [0x1 double]

然后,如果我打印出数据{1}{1}或数据{1},输出是: ID。似乎除了前两个标题外,数据中没有存储任何内容。

但是这段代码在Octave中工作得很好……我是confused....Please help!谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-06-25 22:46:08

%%您可以尝试下面的代码(改编自MATLAB导入工具)

%%初始化变量。

代码语言:javascript
运行
AI代码解释
复制
filename = 'your_comma_delimited_file.csv';
delimiter = ',';
startRow = 2;

每行文本的%%格式字符串:

代码语言:javascript
运行
AI代码解释
复制
formatSpec = '%f%s%f%f%f%[^\n\r]';

%%打开文本文件。

代码语言:javascript
运行
AI代码解释
复制
fileID = fopen(filename,'r');

%%根据格式字符串读取数据列。

代码语言:javascript
运行
AI代码解释
复制
dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter, 'HeaderLines' ,startRow-1, 'ReturnOnError', false);

%%关闭文本文件。

代码语言:javascript
运行
AI代码解释
复制
fclose(fileID);

%%将导入的数组分配给列变量名

代码语言:javascript
运行
AI代码解释
复制
ID = dataArray{:, 1};
Date = dataArray{:, 2};
X = dataArray{:, 3};
Y = dataArray{:, 4};
Z = dataArray{:, 5};

%%清除临时变量

代码语言:javascript
运行
AI代码解释
复制
clearvars filename delimiter startRow formatSpec fileID dataArray ans;

%%或者,您可以使用一行代码导入数据:

% (1)将文件另存为Excel文件(.xlsx)

% (2)使用readtable导入文件

代码语言:javascript
运行
AI代码解释
复制
data = readtable('saved_excel_file.xlsx');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38023850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档