speed_test5
Performance 중심의 Octave 학습 예제
ex-speed/speed_test5.m
함수 시그니처
function [x, y, z] = speed_test5(n, p, q, r, t) 전체 코드
전체 코드를 복사해서 Octave에서 바로 실행할 수 있습니다.
function [x, y, z] = speed_test5(n, p, q, r, t)
# - n = 100000, p = 4, q = 4, r = 4
# - 실행 방식: 루프를 사용하지 않고 `:` 연산자를 이용하여 벡터화된 연산 수행
# - 실행 시간: 0.828358 seconds (가장 빠름)
# - 최적화된 점: 모든 연산을 벡터화하여 반복문 없이 직접 계산 및 할당 수행
x = zeros(n, p, q, r);
y = zeros(n, p, q, r);
z = zeros(n, p, q, r);
for i=1:p
for j=1:q
for k=1:r
x(:,i,j,k) = sin(t);
y(:,i,j,k) = cos(t);
z(:,i,j,k) = sin(t) .* cos(t);
end
end
end
end 코드 해설
목적
Performance 중심의 Octave 학습 예제
입력
- 파라미터: n
- 파라미터: p
- 파라미터: q
- 파라미터: r
- 파라미터: t
출력
- 반환값: x
- 반환값: y
- 반환값: z
실행 흐름
- - 실행 방식: 루프를 사용하지 않고 `:` 연산자를 이용하여 벡터화된 연산 수행
- - 최적화된 점: 모든 연산을 벡터화하여 반복문 없이 직접 계산 및 할당 수행
핵심 함수/주제
zeroscossinseconds
실습 과제
- 핵심 함수 zeros의 인자를 한 가지 바꿔 결과 변화를 기록해보세요.
- "- 실행 방식: 루프를 사용하지 않고 `:` 연산자를 이용하여 벡터화된 연산 수행 -> - 최적화된 점: 모든 연산을 벡터화하여 반복문 없이 직접 계산 및 할당 수행" 흐름을 함수 단위로 분리해 리팩터링해보세요.
학습 팁
같은 카테고리의 다른 코드
- demo_loop_speed
ex-speed/demo_loop_speed.m - demo_save_option
ex-speed/demo_save_option.m - speed_test1
ex-speed/speed_test1.m - speed_test2
ex-speed/speed_test2.m - speed_test3
ex-speed/speed_test3.m - speed_test4
ex-speed/speed_test4.m