| 제목 | 답변완료 matlab 사용자정의함수 | ||
|---|---|---|---|
| 질문유형 | 강좌내용 | 교수님 | 권준표 |
| 과목 | 매트랩 | 강좌명 | |
| 작성자 | 김*훈 (e******2) | 등록일 | 2018-08-23 20:59 |
|
우선 지난 질문글에서 학교과제를 문의하는 것처럼 오해하게 글을 올려서 죄송합니다.
주로 저는 계산을 엑셀을 통해 해오다 정확한계산에 한계가 있고 미지수의 일반화 형태의 형식을 구하는데 매트랩이 유용하여 강의를 들으면서 기존에 해왔던 식을 매트랩을 통해 적용하며 연습하고 있습니다.
앞으로 주의하도록 하겠습니다.
제가 미분방정식 등을 수치적인 계산을 할 때 강의에서 나온 ode45내장함수를 사용하면 좋지만 이것을 적용하는데 한계가 있어서 직접 for end구문을 이용하여 코드를 짜는데요. 코드를 다 구성을하고 실행을 하면 너무 복잡한 과정이 있는지 5분에서 10분정도가 걸립니다.
보통 함수를 사용자정의함수를 통해 미리 지정을 한 후 본코드를 짤때 그 함수를 언급하면서 이용을하는데
제가 사용하는 함수를 사용자정의함수에 저장을하고 불러오는게 좀 더 가벼운지 아니면 주 코드에 직접 입력을 하는게 좀 더 가벼운지 궁금합니다. tic toc을 이용하여 비교를 할순있지만, 많은함수를 할 때 좀 더 일반화된 결론을 얻고싶습니다. 답변 완료된 질문과 답변은 수정 및 삭제가 불가합니다. |
|||
- 댓글
- 0
아주 바람직한 학습방법을 가지고 있으신 것 같아 참 대단하신 것 같습니다.
같은 학생으로서 저도 참 부럽네요.
당연히 직접 함수를 짜는 것이 MATLAB 학습에 더욱 도움이 될 것입니다.
하지만 일반적으로는 MATLAB에 내장되어 있는 함수를 쓰는 것이 훨씬 가볍고 빠릅니다.
너무나 많은 예가 있습니다.
연산속도는 데이터의 저장크기, 연산 방법 등 수많은 방법에 따라 달라집니다.
데이터 저장크기의 예로 sparse와 같은 방법으로 저장하는 것이 있는데 sparse를 사용하면 속도가 당연히 빨라집니다.
연산방법을 예로 들자면
항상 Matrix(행렬)로 계산을 하면 MATLAB의 연산 속도는 엄청 빨라집니다.
Matrix로 계산하지 않고 Matrix에 들어가는 각 항을 계산하여 Matrix를 채우는 식으로 계산하면 엄청 시간이 오래 걸립니다.
저 석사과정 때 MATLAB으로 3차원 진동방정식을 풀었는데 점심을 먹고 나서도 계산이 끝나지를 않아서 좀 알아보니 제가 행렬로 계산하지 않고 있더라구요.
행렬로 고치니 2시간이 넘도록 끝나지 않았던 계산이 거짓말 안하고 2초 안에 끝났습니다.
정말 무식해서 내 컴퓨터만 고생한다는 생각이 들더군요.
어쨌든, 어떻게 활용하든 학생분 마음대로 입니다.
제 생각에는 MATLAB의 내장함수를 이용하여 학생분이 원하는 함수를 만드는 것도 충분히 좋은 학습방법이라고 생각합니다.
저 또한 MATLAB으로 연구할 때 저만의 함수를 많이 만들었지만
당연히 MATLAB의 내장함수를 기반으로 만들었었습니다.
공부에 참고가 되셨으면 좋겠습니다. 화이팅하세요!
- 2018-08-24
- 2024-12-12 수정























