Octave将strsplit返回值向量化为单独的变量

时间:2012-08-24 02:32:20

标签: octave vectorization lvalue 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

这不是我想要的。

1 个答案:

答案 0 :(得分:3)

这很有用。

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