2

我有一个包含记录列表的文件,我一次解析一行。每条记录用换行符分隔,每个值用空格分隔。这只是一个简化的示例,但它具有与真实数据相似的结构。

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

那不是我想要的。

4

1 回答 1

5

这行得通。

 [friendsName favoriteColor favoriteFood] = strsplit(lineInFile, " "){1,:}
于 2012-08-24T02:32:19.773 回答