2017-05-26 111 views
0

我有一个名为cellName大小为10000 * 1的表。每个条目都是单元格名称的字符串。每个单元名称的长度不同。 我想将它强制转换为10000个元素的向量。我怎么能在matlab中做到这一点?这应该很容易,因为在r中,但我没有在matlab中找到这样的命令。 OR:我用readtable从一开始就从csv文件加载10000 * 1表。如果我可以直接将10000 * 1条目作为单个矢量读取,那将会很棒。这是我一开始就做的。将一列表转换为矢量

cellName = readtable('cell.csv'); 
cellName=cellName(1:10000,1); 

预先感谢您!

清除示例:A是5 * 1的表格。 A =苹果 香蕉 梨 桃 西瓜

,我想强制A分成5个元素的矢量:A = [苹果,香蕉,梨,桃,西瓜]代替表

+0

请提供清楚的例子,你想要什么 –

+0

@saeedmasoomi编辑 –

回答

0

如果一个字符单元格阵列是你想要的,我可能会有你的答案。我还建议你阅读access data in a table

readtable成功时返回一个Matlab数据类型table。可以像struct那样访问table,并将列名称作为字段名,或者通过{}运算符索引,就像访问单元格数组一样。

在您的例子,假设A是readtable的返回值和你

A = table({'apple','banana','pear','peach','watermelon'}','variableNames',{'cellName'}) 

然后你就可以调用

cellName = A.cellName 

cellName = A{:,1} 

让你的电池阵列。

+0

但我想要一个向量而不是单元格数组。我试过cell2mat(cellName),它不起作用。任何想法,而不是一个向量? –

+1

不同长度的字符串不能存储在常规数值向量中。它们必须存储在单元数据类型中,并且像使用单元访问运算符'{}'的常规向量那样访问它。 BTW,Nx1单元是Matlab中的一个矢量。你可以在我的例子中用isvector(cellName)进行测试。 –

+0

s1 = {'谢谢''很''张'}; s2 = {'你'是'正确'。 }; s3 = {s1 {:},s2 {:}} –