Software/MATLAB 7

[MATLAB] 함수 파라미터 default 값 설정 (arguments)

Python의 경우 함수를 선언할 때 파라미터의 default 값을 설정할 수 있다.def myFunc(a=1, b=2) 이렇게 말이다. MATLAB에서는 python과 같은 syntax를 지원하지 않지만 비슷한 기능이 있다. arguments 키워드위 그림은 Mathworks 에서 설명하는 arguments 키워드의 구조이다. 함수를 선언하고, 첫 부분에 arguments~end block을 만들어준다.Size, class. functions 등 복잡해보이는데 관심 있는 default 값 설정 방법부터 보겠다. Parameter default 값 설정defaultValue 설정 방법이다.function [sum] = myFunc(a,b) arguments a = 1; b = ..

Software/MATLAB 2025.06.25

[MATLAB] .txt 파일 행렬로 읽어오기 (fopen, fscanf)

실험 결과 logging 후 MATLAB으로 가져와 해석할 때 자주 쓰이는 방법이라 기록해두려 한다. 매 loop 마자 특정 데이터를 저장하고, 그것을 .txt 확장자로 저장했다고 하자. "test.txt"1 2 3 4 5 62 4 6 8 10 12 3 6 9 12 15 18 ... 6개의 원소를 매 loop마다 저장해 (한 행) 총 n개의 열을 저장해다. 이제 생성된 txt 파일을 script와 같은 경로에 두고 (같은 경로가 아니라면 fopen 함수의 경로 파라미터에 따로 지정), 아래 코드를 작성한다.file1 = fopen('test.txt','r');test_arr= fscanf(file1, '%f');test_mat= reshape( test_arr , 6, [])' ; % [n x 6] 행..

Software/MATLAB 2025.01.20

[MATLAB] Figure 창 모니터 특정 위치에 고정하기

MATLAB에서 figure창을 띄우면 디폴트로 주 모니터의 정중앙에 띄워진다.  나같은 경우엔 주로 보조모니터의 상단부에 figure를 고정시켜놓고 코딩을 하거나 데이터를 분석하는데,  Figure창을 새로 띄울 때마다 움직여주는 게 상당히 귀찮았다 ... 찾아보니 command로도 figure 위치를 움직일 수 있었는데, 이 command를 "startup.m"에 추가해두면 매번 위치를 옮길 필요가 없는 것이다!먼저 우리가 원하는 창의 위치와 크기를 찾아보자.fig = figure() figure 창을 하나 띄우고 원하는 위치와 크기로 창을 설정한다.  그리고 fig 변수를 열어보면 Position이라는 property 를 확인할 수 있다. Position은 4x1 벡터로 figure 창의 위치 및 ..

Software/MATLAB 2025.01.14

[MATLAB] 내가 자주 쓰는 단축키

계속 추가할 예정 코드 작성기능단축키비고자동 정렬Ctrl + I 전체를 포맷하고 싶으면 Ctrl + A로 코드 전체 선택 후 Ctrl + I주석 처리Ctrl + R여러 줄 선택 후 눌러도 한꺼번에 주석처리 가능긴 코드 다음 줄에 이어쓰기Shift + Enter끝에 '...' 이 추가되며 다음 줄에 코드를 이어 작성할 수 있음현재 줄 복제Ctrl + Shift + C 단어 단위로 커서 이동Ctrl + 방향키  파일 관리기능단축키비고함수 .m 파일 열기Ctrl + D           코드 실행기능단축키비고코드 실행F5Pause 시키고 다시 resume시킬 때도 해당

Software/MATLAB 2025.01.14

[MATLAB] repmat: 벡터를 반복하여 행렬 생성

매트랩에서 행렬 계산을 할 때 두 행렬 간 차원이 맞지 않아 계산이 안되는 경우가 있다. 행렬의 모든 열에  같은 벡터를 외적하고 싶다해보자.외적 함수인 cross는 두 파라미터의 차원이 같아야하기 때문에, 행 크기가 같은 벡터와 행렬을 넣어줘도 에러가 뜬다. x = [1,2,3]'; % 3x1A = rand(3,3); % 3x3cross(x,A); % error : x and A must be the same size 이때, repmat 함수를 이용하여 벡터를  A의 열 수만큼 반복해 만들어주면 cross를 실행할 수 있다.x_mat = repmat(x,1,3); % x를 반복하여 A와 같은 size로 만들어준다.cross(x_mat,A) % Works! Referencehttps://www.mathw..

Software/MATLAB 2025.01.03

[MATLAB] yyaxis : Plot y축 좌우 2개 설정

시간 같은 동일한 x축을 공유하는 두 데이터의 y scale 차이가 클 때, 단순히 두 데이터를 하나의 figure에 plot하면 비교가 어려운 경우가 있다. 그럴 때 오른쪽에 y축을 하나 더 생성할 수 있다.  한 축에 두 데이터 담을 때 figure()x = linspace(0,25);y1 = sin(x/2);y2 = 300 + cos(x/4);plot(x,y1)hold onplot(x,y2)legend('y1','y2')   Scale의 차이로 인해 두 데이터의 파형이 잘 보이지 않는다.  y축을 따로 생성했을 때yyaxis 명령으로 그리고 싶은 좌우 축을 선택한다. figure()x = linspace(0,25);y1 = sin(x/2);y2 = 300 + cos(x/4);yyaxis left %..

Software/MATLAB 2025.01.02

[MATLAB] linkaxes: Subplot 축 확대 동기화

서로 같은 축을 공유하는 Subplot끼리 (ex. 시계열 데이터) 데이터를 비교해야할 때한 subplot 안에서 확대/축소가 다른 subplot에도 같이 적용되게 하는 방법이다. ax1 = subplot(2,1,1);% Plot 1st graph hereax2 = subplot(2,1,2);% Plot 2nd graph herelinkaxes([ax1 ax2],'x'); % 동기화 원하는 축 선택: 2D의 경우 'x' 또는 'xy' Referencehttps://kr.mathworks.com/help/matlab/ref/linkaxes.html

Software/MATLAB 2024.12.31