Software 11

[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

[Visual Studio] 내가 자주 쓰는 단축키 + 단축키 커스텀

코드 작성 - default기능단축키비고현재 줄 복사Ctrl + c 현재 줄 다음 줄에 복제Ctrl + d 블록 단위로 커서 이동Ctrl + 방향키        코드 작성 - custom기능단축키비고줄 앞, 뒤로 이동Alt + 방향키              코드 실행기능단축키비고코드 실행F5 프로그램 실행 멈춤Shift + F5 현재 줄에 breakpoint 추가F9      단축키 설정하는 법Tools > Options 창 열어주기 1. 검색창에 keyboard 검색하여 설정 메뉴 들어가기2. 관심 command 검색   3. Global 설정을 Text Editor로 바꿔주기-> global로 하면 안되는 경우 있음 .. 이유는 아직 모르겠다 다른 단축키랑 충돌나서 그런 건지 3. 단축키 입력 4. ..

[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

[ROS2] Publish + Subscribe 기초 예제 (C++)

안녕하세요.ROS2 에서 Publish, Subscribe 노드를 생성하고 통신을 테스트해보는 기초 예제입니다. 1. ROS2 패키지 생성ros2 pkg create --build-type ament_cmake cpp_pub_sub 1) rclcppROS2 의 C++ client 라이브러리 2) std_msgsROS의 메세지 타입을 표준화하여 정의ex) int32, float32 등  2. Publisher 코드 작성"cpp_pub.h"#include #include #include #include #include "rclcpp/rclcpp.hpp" #include "std_msgs/msg/int32.hpp"using namespace std::chrono_literals; class CppPub..

Software/Linux 2025.01.07

[Linux] 윈도우 VirtualBox Ubuntu 22.04 LTS + ROS 2 Humble 설치

윈도우의 VirtualBox 가상머신에서 Ubuntu 22.04 LTS 및 ROS 2를 설치하는 방법입니다. 1. VirtualBox 설치우선 Oracle VirtualBox를 설치하겠습니다. 하단 링크에서 공식 배포 버전을 다운로드 할 수 있습니다.  https://www.virtualbox.org/wiki/Downloads Downloads – Oracle VirtualBoxThis VirtualBox Extension Pack Personal Use and Educational License governs your access to and use of the VirtualBox Extension Pack. It does not apply to the VirtualBox base package and..

Software/Linux 2025.01.04

[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