매트랩을 처음 써보는 나..
회사에서 가이드 주신 걸 바탕으로 혼공을 해보았다.
Simulink에는 크게
정도가 있고
각각이 안에서 어떻게 작동하는지는 다 이해됨.
if, for문을 블록화한 로직이라고 생각하면 될 듯.
매트랩은 계산기다.
매트랩은 계산기다.
매트랩은 다음줄로 넘어가면 다음 줄로 인식함. 한 줄인거를 알려주기 위해 … 을 사용. … 으로 한 줄을 여러 줄로 사용 가능
문자열 ‘ ‘
매트랩에서 경로 관리 매우 중요. 경로에서 명령어? 변수들을 찾기 때문
플러그인=툴박스(프레임워크 같은 개념)
embedded coder는 matlab, simulink coder 가 있어야만 그 위에서 작동
MATLAB - simulink - statefolw
확장자 .m
경로 상에서 edit 파일명.m 하면 원래 있는 파일이라면 open, 원래 없다면 새로 생성됨.
fileparts 는 파일 경로를 쪼개주는 함수
함수와 동일한 이름으로 변수 생성하지 말 것 (i, j, char, size 등 ) / 매트랩은 복소수,허수를 허용하기 때문에 i 쓰면 안됨.
f1 누르면 도움말 볼 수 있다.
변수 이름이 함수 이름보다 우선시된다. (변수 선언하면 그 값으로 선언된다)
매트랩의 두 가지 함수 호출 방식
a = 123
undefined function or variable
행렬곱 할 때 . 붙여주면 요소별 곱셉.
1:2:10 ⇒ 1부터 10까지 2씩 증가하며 나열
[1:2:10]’
short circuit 방식 (&&)
세미콜론의 행의 끝을 나타냄.
‘ ‘ ⇒ 문자형 배열 생성/ “ “ ⇒ string 생성
[1 1 1; 2 2 2; 3 3 3]
행렬 연산 시 행렬 사이즈가 다르면 매트랩은 자동으로 맞춰주려고 함. (안되면 에러 발생)
스칼라 - 벡터 - 배열
Inf: 무한대 NaN: 숫자가 아님. (NaN은 NaN 빼고 모든 숫자와 다름)
비트연산
cast: 변수의 데이터형을 변경
typecast: 변수의 비트를 변경하지 않고 데이터형을 변경
실제 모델 운영 시 클래스는 사용할 일 없음.
매트랩에는 17개의 기본 클래스가 있음.
이 클래스는 각각 행렬 혹은 배열 형식
logica,l string, char, numeric, table, cell, struct, function handle …
정수, 소수 다 포함된 연산 결과는 항상 정수형을 결과로 생성.
부동소수점: double, single
최상위(부호), 지수부, 소수부(가수부)
바이어스 (bias) 개념.. 잘 이해 안됨.
Exponent bias
double + int (uint) = int, uint
single + double, single, char, logical = single
single + int (uint) = 에러
whos x : 타입 확인 가능
class (x) : 클래스명 확인
isa(x, ‘integer’) : 정수인지 확인
format long 하면 소수점 4자리보다 더 뒤에까지 확인할 수 있다.
A(:) → A의 모든 것. 열 벡터
any(A(:)) : true가 하나라도 있으면 true 반환 (↔ all (전부 true여야 true)
C++, java에서의 string 개념과 같다. 객체
char. ⇒ 문자형 벡터
string = [”abc” “abcd”] =⇒ “abc” “abcd”
char = [’abc’ ‘abcd’] = ‘abcabcd’
cell은 아무거나 집어넣을 수 있음.
missing
str = { “ “, “ “, “ “}
sprintf
str2double, (형변환가능)
문자열 비교
clear: 창 깨끗해짐
clc: 깨끗해지고 맨 위로 커서 올라감
double + single = single
행렬이 다른 요소면 같은 타입으로 맞춰주려 한다
서로 다른 정수형을 결합하면 가장 왼쪽 요소 데이터형으로 만들어진다.!
Datatype 끝.
출력해보기
(변수는 ; 떼고 출력해보기)
run to here (=이 지점까지 실행된 상태)
Break point ⇒ 클릭해주고 런 하면 해당 지점에서 멈춤
set conditional breakpoint ⇒ 조건 걸어놓고 조건에 맞으면 중단.
Pause on error 체크해두면 에러난 부분에 커서가 멈춰 있음.

try
error
catch e
disp (e);
end