공학/matlab

matlab정리 -7.프로그래밍과 스크립트

뤠이튼 2021. 3. 22. 23:01

※이 글은 매틀랩 도움말센터 MATLAB Documentation - MathWorks 한국을 가지고 따라 하며 부연설명을 추가하여 만든 자료입니다

 

MATLAB Documentation - MathWorks 한국

다음 MATLAB 명령에 해당하는 링크를 클릭했습니다. 명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.

kr.mathworks.com

 

 

 

매틀랩 프로그램의 가장 간단한 유형을 스크립트라 합니다 스크립트란 여러 줄의 matlab명령과 함수 호출이 순차적으로 포함되어있는 파일입니다 스크립트를 실행하려면 스크립트의 이름을 입력하면 됩니다 

 

스크립트 제작

스크립트를  만들 땐 edit 파일명 형태로 명령 창에 입력하면 파일명. m이라는 빈 파일과 함께 편집기가 열립니다

 edit myscript

 

 

 

 

 

 %sphere는 구를 만든드는 함수 [x,y,z]= sphere를 하면
 % 구를 그리지않고 좌표를 반환 합니다
[x,y,z]=sphere;
 r=2;              %반지름
 surf(x*r,y*r,z*r) %surf함수는 3d pㅣot를 그리는 함수 
                   %기존1짜리 구에 *r를 곱해 그림 
 axis equal        %axis은 축 제한과 종횡비 설정 함수
           %equal을 인자로 받으면 각축데이터단위 동일화
 %곡면 면적
 a=4*pi*r^2;  
 %구의 부피
 v=(4/3)*pi*r^3;

% 는 주석입니다 c의 //와 같습니다

 

axis 함수는 데이터 축에 대한 설정을 나타냅니다 이번에 인자로 받은 equal은 각축의 데이터의 길이를 통일시켜버립니다

명령 창에 스크립트의 이름을 입력하거나 편집기에서 실행하기를 누르면 실행됩니다

myscript

or

 

 

결과 반지름 2짜리 구가 나왔습니다

 

 

 

라이브 스크립트

코드와 주석을 일반 텍스트로 작성하는 대신 라이브 스크립트라는 것을 통해 서식을 지정하거나 옵션을 사용하여 코드의 시각화나 설명을 향상할 수 있습니다 라이브 스크립트에서는 코드와 출력 값을 모두 확인하고 이와 상호 작용할 수 있으며 서식 지정된 텍스트. 수식 이미지를 포함시킬 수 있습니다 

 

기존 스크립트파일>라이브 스크립트 변환

 

다른 이름으로 저장> mlx확장자로 변환으로 변환 할수 있습니다

 

 

mlx 확장자로 변환해주십다

 

열어보면

라이브 스크립트로 잘 변환 됐습니다 이제부터 주석에 서식을 지정해보겠습니다

 

만약 새로  라이브 스크립트를 바로 만들고 싶으시면 아래 명령어를 사용하면 됩니다

edit newfile.mlx

 

 

루프와 조건문

 

스크립트 내에서  루프를 통해 반복시키거나 조건문을 통해 조건문으로 실행되는 형태를 만들 수 있습니다 

 

루프 : for , while

조건문 : if switch 

 

가 있으며 각 문의 끝은 end로 묶어줍니다 예를 들어

 

if

elseif

else

end

 

형태로 마지막에 end를 통해 묶어 줄 수 있습니다 주의할 점은 elseif의 경우 다른 언어와 달리 띄어 쓰면 새로운 if문으로 인식합니다

 

 

반복문 :for

피보나치수열을 풀어봅시다

N = 100;
f(1) = 1;
f(2) = 1;

for n = 3:N
    f(n) = f(n-1) + f(n-2);
end
f(1:10)

for n=3~N(100)이 될 때까지 돌 것이고 우린 그중 1~10번까지만 확인해볼 겁니다

 

조건문은 항상 참일 경우에만 실행됩니다 를 들어, 난수의 크기에 따라 변수에 값 'low', 'medium' 또는 'high'를 할당해 보겠습니다. 이 경우 난수는 1과 100 사이의 정수입니다.

if num < 34
   sz = 'low'
elseif num < 67
   sz = 'medium'
else
   sz = 'high'
end

end로 끝내줘야 함에 항상 주의하셔야 합니다