2017-05-26 138 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 {:}} –