2013-12-16 69 views
1

我有具有3列的CSV文件: 字符串类型(这可以是一个词或句子),整数型,整型[这些是列类型]
现在我想将这些数据存储到一个矩阵中,其中字符串(整个句子存储在一个单元格中)以及每个单元格中的整数。我尝试这样做:存储串和整数类型CSV文件转换成一个矩阵的matlab

fileID=fopen('training.csv'); 
C=textscan(fileID,'%s %d %d'); 

但它给出了一个不同的细胞句子的每个单词的整个sentecne应存放在一个cell.How做呢?

谢谢。

编辑:它似乎现在读什么,这就是我得到

celldisp(C) 

C{1}{1} = 

    jdl 

C{2} = 

    [] 

C{3} = 

    [] 

编辑

jdl h-yf u ghjktnfhcrjuj hjcljd-yf-ljye     129771 196 
EAS CJDTNCRBH YFIRJHNJCNFY UJH HTDL HTCG    819100 458 
rcfcyjzcrjuj rfycrf u rhfz edl       547653 677 
trfcthbyyehuf h-yt jnltkjv eavc xrfkjdcrjv u hjccbb d 970121 884 
H-YF TRFNTHBYYEHUF U EDL XRFKJDCRJUJ     938870 630 
jdl yfhyfek h-yf rtktpyjljhjryjuj      525855 598 
rhfcyjzhcrf eghfdktybtv dyenhtyybq hfqjyf u ktybycrjuj 709215 403 

差不多的样子this.It有3500行数据

回答

1

你可以把字符串转换为引号,然后在textscan使用%Q:

%q String, where double quotation marks indicate text to keep together 

编辑:如果你只需要(通过脚本,并不会自动在另一个进程中),这样做一次,怎么样从CSV,文件中的数据手动导入到MATLAB(通过利用MATLAB提供的导入工具:

enter image description here

然后可能保存导入的变量只需要一个MAT文件,以便将来可以更轻松地访问它!?

+0

coukd你细说了,我不undertsand你是什么saying.Should我修改我的文件?该文件有1000行。 – LoveMeow

+0

是的,我的意思是将数据导出到一个csv文件,其中的字符串位于引号之间,例如,看起来像这样:“bla bla bla”; 1; 2然后你可以在textscan中使用参数%q来匹配两个引号之间的字符串。但是,如果您可以轻松修改csv文件(例如,通过更改输出csv文件的程序的输出例程),那将只是一个选项。 csv文件来自哪里(从什么生成)? – tim

+0

由我的大学给出。我需要导入到matlab中的训练数据进行工作(机器学习)。它有3个柱和许多行。第一列有一个句子。并且我坚持知道如何导入第一个列作为matlab矩阵中的第一列。 – LoveMeow