ex-cms

Control & Dynamics + Visualization 중심의 Octave 학습 예제

ex-pkg/ex-cms.m

코드 인덱스로 돌아가기

카테고리

Package Drill

학습 소스 그룹

코드 길이

33

lines

작성자

-

날짜 정보 없음

패키지

none

pkg load 기준

함수 시그니처

function [color, marker, linestyle] = extract_plot_style(style)

전체 코드

전체 코드를 복사해서 Octave에서 바로 실행할 수 있습니다.

function [color, marker, linestyle] = extract_plot_style(style)
    % 색상 패턴
    color_pattern = '[bgrcmykw]';
    % 마커 패턴
    marker_pattern = '[\.\+ox\*sdv\^<>ph]';
    % 라인 스타일 패턴
    linestyle_pattern = '(-{1,2}|:|-\.)';

    % 색상 찾기 (첫 번째 매칭)
    color_match = regexp(style, color_pattern, "match", "once");

    % 라인 스타일 찾기 (첫 번째 매칭)
    linestyle_match = regexp(style, linestyle_pattern, "match", "once");

    % 마커 찾기 (첫 번째 매칭)
    marker_match = regexp(style, marker_pattern, "match", "once");

    % 결과 반환 (없으면 빈 문자열)
    color = ifelse(isempty(color_match), "", color_match);
    marker = ifelse(isempty(marker_match), "", marker_match);
    linestyle = ifelse(isempty(linestyle_match), "", linestyle_match);
end

% 예제 실행

test_set = {"ro-", "b--", "g*", "k:"};

for i = 1:size(test_set, 2)
    test = test_set{i};
    [color, marker, linestyle] = extract_plot_style(test);
    printf(fmt("Test: {test}, Color: {color}, Marker: {marker}, LineStyle: {linestyle}\n"))
end

코드 해설

목적

Control & Dynamics + Visualization 중심의 Octave 학습 예제

입력

  • 파라미터: style

출력

  • 반환값: color
  • 반환값: marker
  • 반환값: linestyle
  • 콘솔 텍스트 출력

실행 흐름

  1. 결과 반환 (없으면 빈 문자열)

핵심 함수/주제

ifelseisemptyregexpfmtprintfsize

실습 과제

  • 질량/감쇠/강성 또는 전달함수 계수를 바꿔 응답 변화를 확인해보세요.
  • 축 범위와 라벨을 바꿔 그래프 해석성이 어떻게 달라지는지 확인해보세요.
  • 핵심 함수 ifelse의 인자를 한 가지 바꿔 결과 변화를 기록해보세요.

학습 팁

같은 카테고리의 다른 코드