본문 바로가기

공부/프로그래밍

matlab(매틀랩) programing 강의 180404

2015b 버전 기준


조건문, 반복문을 이용한 여러가지 경우를 보자


행렬의 원소들이 0보다 작으면 nan값 크면 log10을 씌우는 식


>> x=[10,1000,-20,100];

>> y=NaN*x;

>> for k = 1: length(x)

if x(k)<0

continue

end

y(k)=log10(x(k));

end

>> y


y =


     1     3   NaN     2


-----------------------

행렬의 원소가 0보다 크면 루트를 씌우고 아니면 50을 더한다.


A=[0  -1 4;9 -14 25; -34 49 64]


for i=1:3

    for j = 1:3

        if A(j,i)>=0

        B(j,i)=sqrt(A(j,i));

        else

        B(j,i)=A(j,i)+50;

        end

        

    end

    

end


------------------------

스크립트 이용 

단순 n까지의 모든 홀수의 합


function A = n(n)


x=0;

for i=1:2:n

    x=x+i;

end

A=x;


------------------------

스크립트 이용

푸리에 급수 그래프 그리기 받는 수는 급수의 반복 횟수


function A = n(n)


x=-pi:0.01:pi;

y=0;

for i=1:n

    y=y+sin((2*i-1)*x)/(2*i-1);

end

y=4/pi*y;


plot(x,y)


------------------------

해당 그래프에 잡음 추가하기

rand : 구간 (0,1)에 균일하게 분포된 난수 하나를 반환합니다.


x=1:0.01:10;

y=x;


plot(x,y);

hold on


for i=1:length(x)

    rand_num=rand*0.5-0.25;

    y2(i)=y(i)+rand_num;

end


plot(x,y2)


--

위의 것을 스크립트로 만든 것 입력받는 것은 잡음의 범위


function A = n(max_var)


x=1:0.01:10;

y=x;


plot(x,y);

hold on


for i=1:length(x)

    rand_num=rand*max_var*2-max_var;

    y2(i)=y(i)+rand_num;

end


plot(x,y2)

hold off

728x90