Cha*_*ski 2 vectorization octave lvalue strsplit
我有一个包含记录列表的文件,我一次解析一行。每条记录都以换行符分隔,每个值以空格分隔。这只是一个简化的例子,但它具有与真实数据相似的结构。
Bob blue pizza
Sally red sushi
Run Code Online (Sandbox Code Playgroud)
第一个值是名称,然后是他们最喜欢的颜色,然后是他们最喜欢的食物。假设这是在一个处理循环中,我想为每个值设置变量。对于第一行,我的值应该是这样的。
friendsName = "Bob";
favoriteColor = "blue";
favoriteFood = "pizza";
Run Code Online (Sandbox Code Playgroud)
我在行中阅读并开始
lineInFile = "Bob blue pizza";
Run Code Online (Sandbox Code Playgroud)
strsplit 似乎是个好主意,但它输出一个单元格数组而不是一个字符串矩阵,我最终得到
strsplit(lineInFile, " ") =
{
[1,1] = Bob
[1,2] = blue
[1,3] = pizza
}
Run Code Online (Sandbox Code Playgroud)
我想要类似的东西
{friendsName,favoriteColor,favoriteFood} = strsplit(lineInFile, " ");
Run Code Online (Sandbox Code Playgroud)
这给了我 error: invalid lvalue function called in expression
数组可以用作左值,所以我试过了
cell2mat(strsplit(lineInFile, " "))
ans = Bobbluepizza
Run Code Online (Sandbox Code Playgroud)
那不是我想要的。
这奏效了。
[friendsName favoriteColor favoriteFood] = strsplit(lineInFile, " "){1,:}
Run Code Online (Sandbox Code Playgroud)