함수
function [...return_values = ] function_name([...parameter])
content...; //tab이나 중괄호 필요 없음
content...;
return_value1 = ~; // return 구문 사용 X
함수는 *.m 파일에서 선언한다.
기본적으로 밖으로 내보낼 함수에 대해서는 함수 파일의 이름과 함수의 이름이 동일해야 한다.
한 파일에는 많은 함수가 있을 수 있는데, 한 함수만 외부에서 접근이 가능하고 나머지는 내부에서만 사용한다.
//in myFunc.m
//외부로 노출되는 주함수
//파일이름과 함수 이름이 동일
function result = myFunc(a,b)
result = innerFunc(a,b);
//파일 내부에서만 사용가능한 부함수들
function value = innerFunc(a,b);
value = a + b + 3;
입력변수 개수 : nargin
function value = myFunc(a,b,c)
cond = true;
if nargin == 3
cond = false;
end
if cond
value = "under 3"
else
value = "exactly 3"
end
함수의 입력변수 개수를 nargin을 통해 접근 가능.
입력 함수 input
value = input("prompt text" [, 's']?)
숫자나 문자를 입력받아, 주어진 변수에 저장한다.
문자열을 받고 싶다면 's'를 뒤에 붙여준다.
출력 함수
disp(something)
disp : 안으로 들어오는 값을 단순히 출력
fprintf([fileID ,]"format_string", ...values);
fprintf :
주어진 규격에 맞춰 출력한다.
fileID가 명시되면 파일에 출력.
배열이 format에 맞게 들어오면, 배열을 전부 출력해준다.
x = [1:5]; // x = [1 2 3 4 5]
y = linspace(1, 10, 5); // y = [1 3.25 5.5 7.75 10]
z = [x ; y];
fprintf("%d %f\n", z);
// result
//1 1.000000
//2 3.250000
//3 5.500000
//4 7.750000
//5 10.000000
save & load
save filename args1 args2 ...
load filename args1 args2 ...
ex)
save file.txt a //값만 저장하므로 .mat 파일 사용하듯 입출력은 불가
확장자를 지정하지 않으면 .mat 파일이 대상이 된다.
save : filename(.mat) 파일에 args1... 을 저장. 파일이 없으면 생성. args 없으면 현재 작업공간의 모든 변수 저장
load : filename(.mat) 파일에서 args1... 을 가져옴. args 없으면 전부 가져옴
if - statement(조건문)
if condition1
do_something;
elseif condition2
do_something;
else
do_something;
end
//ex
function showSomething(arr)
if length(arr) > 3
disp(arr)
end
switch-statement
switch value
case cond1
doSomething();
case cond2
doSomething();
...
otherwise
doSoemthing();
end
for-statement
for index = start:step:finish
state
end
// ex : factorial
x = 1;
for i = 1:n
x = x * i;
end
result = i;
error
error("error message");
//ex
function showSomething(arr)
if length(arr) > 3
disp(arr)
else
error('length is too short');
end
//>> showSomething([1 2])
//다음 사용 중 오류가 발생함: showSomething (5번 라인)
//length is too short
에러 메시지 및 에러 발생 라인 내용을 출력하고, 해당 함수를 빠져나온다.
'잡다' 카테고리의 다른 글
[오늘의 삽질] ec2 재시작 후 ssh 접근 안되는 문제 (0) | 2022.05.19 |
---|---|
[Colab] Colab과 구글 드라이브 연동 (0) | 2021.12.01 |
[weka] Data Set의 수를 제한하는 방법 : Resample (0) | 2021.11.06 |
MATLAB #3 (0) | 2021.09.14 |
MATLAB 정리 (0) | 2021.09.07 |