ex-cms
Control & Dynamics + Visualization 중심의 Octave 학습 예제
ex-pkg/ex-cms.m
함수 시그니처
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
- 콘솔 텍스트 출력
실행 흐름
- 결과 반환 (없으면 빈 문자열)
핵심 함수/주제
ifelseisemptyregexpfmtprintfsize
실습 과제
- 질량/감쇠/강성 또는 전달함수 계수를 바꿔 응답 변화를 확인해보세요.
- 축 범위와 라벨을 바꿔 그래프 해석성이 어떻게 달라지는지 확인해보세요.
- 핵심 함수 ifelse의 인자를 한 가지 바꿔 결과 변화를 기록해보세요.
학습 팁
같은 카테고리의 다른 코드
- ex-control
ex-pkg/ex-control.m - ex-fmt
ex-pkg/ex-fmt.m - ex-fstring
ex-pkg/ex-fstring.m - ex-image
ex-pkg/ex-image.m - ex-io
ex-pkg/ex-io.m - ex-optim
ex-pkg/ex-optim.m - ex-signal
ex-pkg/ex-signal.m - ex-statistics
ex-pkg/ex-statistics.m - ex-symbolic
ex-pkg/ex-symbolic.m - fmtf
ex-pkg/fmtf.m