벡터화
배열에 직접 관여하는 방식.
t = 0:0.02:50;
y = cos(t);
// t의 값에 대응되는 cos 값의 배열이 y에 저장된다.
plot(t, cos(t))
메모리 사전 할당
MATLAB은 배열에 원소를 하나씩 추가하는데 시간이 많이 소요될 수 있으므로 ones 나 zeros 같은 함수로 미리 할당해두면 속도가 더 빨라질 수 있다.
t = 0:0.2:5;
y = ones(size(t));
~~~
while
while condition
statements
end
//
x = 0;
while x < 10
disp(x)
end
시간 측정
function myTimer(sec)
tic
beep
pause(sec)
beep
toc
end
- tic : 시간 측정 시작
- toc : 시간 측정 끝
- pause(n) : n 초간 동작을 멈춘다
- beep : 컴퓨터 오류 알림 소리
익명 함수
M 파일을 생성하지 않아도 간단한 함수 생성 가능
기본적으로 인수를 제외한 값은 함수를 생성한 순간에 bind 된다.
func = @(a, b) a + b
//func(3,4)
// ans = 7
//ex
external_value = 13;
func1 = @(a, b) external_value * a + b;
func1(3,4) // answer = 43
external_value = 57;
func1(3,4) // answer = 43
// external_value 값이 바뀌어도 함수는 안바뀐다. 만든 당시에 바인딩된다.
함수를 인수로 전달
함수 역시 인수로 전달 가능하다.
function result = fnArgs(f,a,b,n)
x = linspace(a,b,n);
y = f(x);
result = mean(y);
end
인수의 전달 : varargin
다른 언어의 Params에 대응되는 기능
function favg = varEx(f,a,b,n, varargin)
x = linspace(a,b,n);
y = f(x,varargin{:});
favg = mean(y);
end
'잡다' 카테고리의 다른 글
[오늘의 삽질] ec2 재시작 후 ssh 접근 안되는 문제 (0) | 2022.05.19 |
---|---|
[Colab] Colab과 구글 드라이브 연동 (0) | 2021.12.01 |
[weka] Data Set의 수를 제한하는 방법 : Resample (0) | 2021.11.06 |
MATLAB #2 (0) | 2021.09.09 |
MATLAB 정리 (0) | 2021.09.07 |