2012-08-24 104 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,:}