2013-06-17 2 views
2

나는 matlab에서 실행하려고 노력하고있어 코드가 있는데, textscan 함수에서 그것은 내가 코드가 작동하는지 확신하지만 구분 기호에 문자열을 나눌 수 없다는 오류를 제공합니다 다른 버전의 matlab에 (다른 컴퓨터에서)matlab에 textscan 이상한 행동

>> a='ahmed;mohamed' 

a = 

ahmed;mohamed 

>> b = textscan(a, '%s;%s', 'Delimiter', ';') 

b = 

    {1x1 cell} {0x1 cell} 

>> b{1} 

ans = 

    'ahmed' 

>> b{2} 

ans = 

    Empty cell array: 0-by-1 

어떤 사람이 설명 할 수 있습니까? 최근에 textscan 기능이 변경 되었습니까? 내가 MATLAB 2013

답변

4

을 사용하고 이 작동 :

str = 'ahmed;mohamed'; 
C = textscan(str, '%s', 'Delimiter',';', 'CollectOutput',true); 
C = C{1}; 

로 : 당신은 또한 사용할 수 있도록

>> C 
C = 
    'ahmed' 
    'mohamed' 
+2

당신은 형식 문자열 내부의 구분 기호를해서는 안 : ''%의 % s '(세미콜론 없음). 이전 형식은 "formatSpec"이 반복적으로 적용 되었기 때문에 작동합니다 (예 : 세 번째 입력 인수 "N"이 지정되지 않은 경우 'Inf'임). – Amro

+1

Amro의 답변에 추가 된 것처럼 원래 코드가 작동하지 않는 이유는 'textscan' 'FORMAT' 필드에 구분 기호를 지정해야합니다. 이 함수는 연속 패턴 일치 사이에 구분 기호가 있다고 가정합니다. – cjh

+0

고마워, 버전 사이에 내부 구현이 바뀌었고 코드가 약간 깁니다. –