공학도에게 코딩이란_코딩 기본예시

2020. 4. 13. 11:41공학,과학/매트랩,파이썬,오픈시스(tcl) 코딩

반응형

 우선 여기 블로그에서 다루는 코딩은 일반인들이 배우고 싶어하는 UI 나 웹,앱 개발과 관련한 내용이 아님을 먼저 밝히겠다.

 공학도로서 일을 하다보면 수치해석이나 미분방정식 등으로 자연현상이나 사물의 거동을 예측하거나 묘사해야하는 경우가 상당히 많은데 이런 부분을 수계산이나 엑셀같은 스프레드시트만으로 표현하려면 너무 시간이 오래 걸린다. 따라서 프로그램 툴을 이용하거나 직접 코딩을 하게되는데 아무래도 이런 부분에 관해서는 mathworks 사의 matlab 프로그램이 가장 적합하게 개발되어 왔기에 수치해석을 해야하는 많은 연구실에서 사용하고 있다. 

 나 같은 경우에도 업무상 필요한 차원에서 엑셀 VBA나 매트랩 내에서의 기초적인 코딩은 다루고 있으나(그냥 그때 그때 필요한 대로 쓰는 정도라 제대로 다루고 있다고는 말을 못하겠다.) matlab 같은 경우는 프로그램 유지 가격이 상당히 비싸므로 지원을 해주지 않는 연구실과 회사들이 많으므로 나중을 기약하여 공개 프로그램 언어인 파이썬에대해 독학을 하는 처지이다. (파이썬 이용 개발자들이 이런 수치해석 프로그램의 상당 기능을 공개 라이브러리나 모듈로 엇비슷하게 구현을 해 두어서 상당 부분은 대체 가능하다.)

 그렇다보니 파이썬에 대해 대화형인터페이스가 어떻다는 등 객체지향이 어떻다는 등 그런 얘기를 하면서 설명을 할 입장이 아니다. 그래서 해당 블로그에는 쉽게 활용 가능한 매트랩 코드들을 기록하면서 중간중간 해당 코드를 파이썬 언어로 치환하여 업데이트를 할까 한다. (공개가 힘들어 업데이트가 더딜지 모르겠다.)

 이에 앞서서 오늘은 파이썬 독학 당시에 처음 접했던 책인 '점프 투 파이썬'의 내용을 바탕으로 파이썬 기초 예시를 보고 매트랩에서는 어떻게 구현가능한지 비교하면서 역으로 확인해보겠다.

 

https://wikidocs.net/21

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

위의 링크로 넘어가보면 파이썬을 이용해 커피자판기나 나무를 찍어내는 상황을 묘사하는 코딩을 한것을 볼 수 있는데 매트랩으로는 다음과 같이 구현이 가능하겠다.

clear; clc; close all
pause(0.1);
 
coffee = 10;
while true
    money = double(input('돈을 넣어 주세요: '))
   
    if money == 300
        fprintf('커피를 줍니다.')
        coffee = coffee-1;
        fprintf('남은 커피의 양은 %d개 입니다.', coffee)
        
        if coffee == 0
        fprintf('커피가 다 떨어졌습니다. 판매를 중지 합니다.\n')
        break
        end
    elseif money > 300
        change = money - 300;
        fprintf('거스름돈 %d를 주고 커피를 줍니다.', change)
        coffee = coffee -1;
        fprintf('남은 커피의 양은 %d개 입니다.', coffee)
        
        if coffee == 0
        fprintf('\n커피가 다 떨어졌습니다. 판매를 중지 합니다.\n')
        break
        end
    else
        fprintf('돈을 다시 돌려주고 커피를 주지 않습니다.')
        fprintf('남은 커피의 양은 %d개 입니다.', coffee)
    
    end
end
 
cs
실행 예시

 

clear; clc; close all;
 
pause(0.1)
 
tree= '나무를 ';       %문자형
verb= '번 찍었습니다.'; %문자형
space=" ";              %스트링형
treeHit=0;
 
 
while treeHit<10
    treeHit = treeHit+1;       %숫자형
    numtreeHit= num2str(treeHit);       %문자형 배열
    a=[[tree],[numtreeHit],[verb]];     %배열형
    A={[tree],[numtreeHit],[verb]};     %셀형
    b=strcat(a);                        
    %B=strcat(A)         1×3 cell 배열   {'나무를 '}    {'10'}    {'번 찍었습니다.'}
    %c=join(a)          %결과: 문자열일때 strcat(a)와 동일 
    %C=join(A)           1×1 cell 배열  {'나무를  10 번 찍었습니다.'}
 
    fprintf(b)
    fprintf('\n')
    
    if treeHit==10
       fprintf('나무가 %d번 만에 쓰러졌습니다.',treeHit)
    end
  
 
end
 
cs

실행 예시

 지금은 가장 기본적인 반복문을 가지고 파이썬으로 코딩된 자료를 매트랩으로 전환을 해 보았으나, 앞으로는 이와 반대로 매트랩으로 해석을 진행한 자료를 파이썬으로 전환하는 예시들을 시간이 되는대로 다뤄보도록 하겠다.

반응형