2012-08-24 40 views
1

我有一個文件列表的記錄,我一次解析一行。每條記錄都是換行符分隔的,每個值都是空格分隔的。這只是一個簡單的例子,但它與真實數據具有相似的結構。八度矢量化strsplit返回值到單獨的變量

Bob blue pizza 
Sally red sushi 

第一個值是一個名字,然後他們最喜歡的顏色,然後他們最喜歡的食物。假設這是在一個處理循環中,我想爲每個值設置變量。對於第一行,我的值應該是這樣的。

friendsName = "Bob"; 
favoriteColor = "blue"; 
favoriteFood = "pizza"; 

我在讀行,並開始了與

lineInFile = "Bob blue pizza"; 

strsplit似乎是個好主意,但它輸出單元陣列,而不是字符串的矩陣和我結束了

strsplit(lineInFile, " ") = 
{ 
    [1,1] = Bob 
    [1,2] = blue 
    [1,3] = pizza 
} 

我想是這樣

{friendsName,favoriteColor,favoriteFood} = strsplit(lineInFile, " "); 

這給了我error: invalid lvalue function called in expression

陣列可以作爲左值,所以我試圖

cell2mat(strsplit(lineInFile, " ")) 
ans = Bobbluepizza 

這不是我想要的。

回答

3

這工作。

[friendsName favoriteColor favoriteFood] = strsplit(lineInFile, " "){1,:}