[matlab] 4.matlab으로 그래프 그리기(2)
원 색칠하기
이번 시간에는 저번 시간에 이어서 matlab을 이용해서 그래프를 그려보겠습니다.
반지름이 3인 원을 색칠하는 코드를 작성해보겠습니다.
t=linspace(0,2*pi,50);
figure(1)
for n=0;0.001;3
hold on
plot(n*cos(t),n*sin(t),'r-')
hold off
end
xlim([-3,3])
ylim([-3,3])
axis equal
실행 결과입니다.
원리는 간단합니다 반지름을 계속 줄여가면서 그리는 것이죠!!
그래프 그리는 것에 대한 내용은 더 배우면 추가하도록 하겠습니다.
뜬금없지만 수업 중에 퀴즈로 소인수 분해하는 문제가 나왔습니다.
상당히 어려웠는데요…
저번 퀴즈 시간에 나온 소인수 분해하는 코드를 여기다가 써놓겠습니다!
function A=int_factor(n)
A=[]; %답변 배열
prime=[]; %n보다 작은 prime을 저장
t=[]; %n의 소인수를 저장
pow=[]; %소인수의 차수를 저장
num=n;
%먼저 n보다 작은 prime을 구한다.
for i=1:n
if isprime(i)
prime=[prime i];
end
end
s=size(prime);
%각각의 prime으로 나누어 보면서 소인수와 차수를 구한다.
for i=1:s(2)
j=1;
k=1;
while k
if mod(num,prime(i)^j)~=0 %소수로 안 나누어지면 반복문 빠져나옴
k=0;
else
j=j+1;
end
end
if j>=2 %num는 prime(i)^(j-1)로 나누어 떨어진다
num=num/(prime(i)^(j-1));
t=[t prime(i)];
pow=[pow j-1];
end
if num<=1
break
end
end
%t와 pow 구하기 완료
A=[num2str(t(1)) '^' num2str(pow(1))];
s1=size(t);
if s1==1
return
end
for i=2:s1(2)
A=[A 'x' num2str(t(i)) '^' num2str(pow(i))];
end
그리고 코드의 실행시간을 알고 싶으면 tic,tok을 쓰면 됩니다.
>>tic(), int_factor(12), tok()
다음 시간에는 수치해석학에 필요한 개념인 테일러 정리와 보간법에 대해 알아보겠습니다