2012-08-24 6 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

배열이 lvalues로 사용할 수 있습니다, 그래서 내가 원하는 게 아니에요 그

cell2mat(strsplit(lineInFile, " ")) 
ans = Bobbluepizza 

시도 나에게 제공합니다.

답변

3

이것은 효과가 있습니다.

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