2

一度に1行ずつ解析するレコードのリストを含むファイルがあります。各レコードは改行で区切られ、各値はスペースで区切られます。これは単純化された例ですが、実際のデータと同様の構造になっています。

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 に答える