2016-10-03 3 views
5

Matlab R2016b에서는 특정 데이터 형식의 변수를 표시하면 해당 형식에 대한 정보가 표시됩니다. 이것은 최종 세미콜론없이 변수를 표시 할 때 발생합니다 (disp 함수를 사용할 때 발생하지 않음). Matlab R2016b의 이전 표시 형식으로 돌아 가기

예를 들어 비교 :

  • matlab에 R2015b (이전 형식 : 표시 데이터 만) :

    >> x = [10 20 30] 
    x = 
        10 20 30 
    >> x = {10 20 30} 
    x = 
        [10] [20] [30] 
    >> x = [false false true] 
    x = 
        0  0  1 
    
  • matlab에 R2016b

    >> x = [10 20 30] 
    x = 
        10 20 30 
    >> x = {10 20 30} 
    x = 
        1×3 cell array 
        [10] [20] [30] 
    >> x = [false false true] 
    x = 
        1×3 logical array 
        0 0 1 
    
  • : (새 형식 : 타입 포함)

유형을 말하는 R2016b의 여분의 선. 분명히 이것은 double 또는 char이 아닌 모든 유형에서 발생합니다.

R2016b의 이전 설정으로 돌아가려면 몇 가지 설정이 있습니까?

+1

오, Luis에 와서, 정말 멋진 기능입니다! : P –

+4

@AnderBiguri하지만 더 이상 집에 없기 때문에 기분이 나아집니다 :-) –

+0

는 그루터기 풍물에 조금 파묻 혔습니까? 아직 최신 버전이 없습니다. – thewaywewalk

답변

3

불행히도 그 행동을 변경하는 것에 대한 선호도가없는 것 같습니다. (항상 그렇듯이) 약간의 해킹 해결 방법이 있습니다.

줄에서 세미콜론을 생략하면 이 아닌 disp이 호출됩니다. R2016b는 cell 데이터 유형에 대해 display 메소드를 수정하여 값 자체와 함께 일부 유형 정보를 표시합니다.

다행히도 display 메서드를 이전 릴리스의 display과 약간 비슷한 것으로 오버로드 할 수 있습니다.

@cell 폴더 (경로상의 모든 위치)를 만들고 display.m이라는 파일을 넣을 수 있습니다. 셀 어레이는 후행 세미콜론의 부족으로 인해 표시 할 때마다 현재

function display(obj) 
    % Overloaded display function for grumpy old men 

    if strcmpi(get(0, 'FormatSpacing'), 'loose') 
     fprintf('\n%s =\n\n', inputname(1)) 
    else 
     fprintf('%s =\n', inputname(1)) 
    end 
    disp(obj); 
end 

@cell/display.m

는, 어떤 종류의 정보를 포함하지 않을 것이다.

>> c = {'a', 'b'} 

c = 

    'a' 'b' 

불행하게도, 당신이 이러한 클래스 각각에 대한 display 방법에 과부하를해야 할 것이다, 그래서 또한 유형 정보를 표시합니다 (예 : logical 같은) 다른 데이터 유형이 있습니다.

+0

고마워! 오버로드하는'display'가 길일 것 같습니다. 내장 된'display'에 의해 생성 된 정확한 포맷을 재생산하는 것을 피하기 위해서'tval = 'evalc ('builtin ('' 'display' ')를 사용하는 것이 더 좋을 것 같아요. ', obj)');''t'는'regexp'로 심술 궂은 라인을 제거 할 수있는'char' 벡터입니다 (R2015b에있는 것처럼 지금 시도 할 수 없습니다) –

+0

이상하게도'builtin ('display', c)'는 처음에는'c ='를주지 않지만'display (c) '를 호출하면 ... – Suever

+0

True! R2015b에서도 마찬가지입니다. 그래서 나는 그것이 일반적으로 가정하지 않는 것이 안전하다고 생각하고 수동으로 추가한다. –