ProgramingTip

Octave보다 MATLAB을 선호하는 이유 / 언제?

bestdevel 2020. 10. 12. 07:56
반응형

Octave보다 MATLAB을 선호하는 이유 / 언제?


우리는 전에 슈 많은 작업에서 우리는 강화 하드웨어에서 C 구현을 수행하기 위해 더 높은 수준의 언어로 알고리즘을 구축해야합니다.

지금까지이를 MATLAB을 왔지만 라이선스 비용이 기 시작했습니다. MATLAB 코드를 Octave로 이식하는 것을 고려하고 있습니다.

그렇게하지 않는 특별한 이유 가 있습니까? 특히 MATLAB 사용을 고집하는 외부 파트너가있는 경우에는 깨질까요? 예상 할 수있는 성능상의 불 환원이 있습니까?


2008 년에도 똑같은 일을 시도했습니다. 나는 다음과 같은 쇼 스토퍼를 빠르게 발견했습니다.

  • 도구 상자는 완전하지 않고 잘 테스트되지 않습니다. 큰 쇼 스토퍼는 특히 내 작업이 크게 의존하지 않는 것입니다.
  • Octave 디버거와 프로파일 러는 Matlab에 비해 원시적이었습니다.
  • 다른 사람들과 함께 일하면 요구하는 변화가 매우 어려울 수 있습니다.
  • 도구 상자를 사용하는 경우 해당 도구 상자를 직접 사용하는 것입니다.
  • 옥타브는 출판 품질이 아닙니다.

그러나 나는 일반적으로 Octave가 Matlab과 얼마나 상호 작용하는지에 대해 깊은 인상을 받았다고 말해야합니다. Matlab을 기본적으로 사용한다면 운이 좋을 수도 있습니다. 마지막으로 이것은 2008 년입니다. 2 년 안에 상황이 많이 바 있습니다.


내 머리에서 :

  1. 두 학기 전 기계 학습 과정에서 숙제를 강화했을 때 발견했듯이 Octave에는없는 도구 상자가 많이 있습니다.
  2. 옥타브는 훨씬 열등한 디버거를 가지고 있습니다. 함께 일하는 것은 거의 불가능합니다.
  3. Matlab은 다양한 유형의 작업에서 훨씬 빠를 사용합니다.
  4. Matlab의 많은 것이 훨씬 더 좋습니다.
  5. 옥타브에는 기본 GUI가 없습니다. Octave 용 GUI는 Matlab의 기본 GUI보다 열등합니다.

옥타브와 R도 테스트했습니다.

옥타브와 관련하여 : 저는 옥타브 구문의 유사성에 깊은 인상을 공헌합니다. MATLAB 펼쳐지는 옥타브로 전송하는 데 많은 시간이 걸리지 않습니다. Meanwihile 나는 nabble에서 Jarno Rajahalme에 의해 수정되고 xtick 글꼴 크기를 변경하는 errorbar와 공동으로 마커를 인쇄하는 데 특별한 문제가 있습니다. 따라서 약간의 노력을 기울일 수 있습니다. 문제가 발생하면 nabble 메일 링 포럼 (help-octave@octave.org)을 시도해 볼 수 있습니다. 그건 그렇고 우리 팀은 MATLAB에 적응하는 것처럼 (사용자 사용 안 함) 적응할 수있는 그대로 MATLAB을 사용하고 있습니다. MATLAB은 검증 된 gnuplot에서 생성 된 gnuplot 파일을 편집하는 것입니다. 내가 최고의 IDE는 QtOctave였으며 "

R 관련 : SciViews의 연구에 따르면 R의 성능은 MATLAB 및 옥타브보다 우수합니다. 저는 R에 대한 경험이 많지 언어입니다. 저는 R의 EM 클러스터링에 대한 위키 북 장을 작성하기 위해 mclust 패키지를 연구했습니다. 그런데 매우 활동적인 커뮤니티를 가지고있는 것입니다. IMO가 그렇게 표준화되지 않은 제안서에 대한 것입니다. 내가 최고의 IDE, JGR (Java GUI for R) 및 emacs 용 StatET는 Eclipse입니다. 새로운 프로그래밍 언어를 배우는 데 시간이 걸리지 만 실험 그래픽과 일부 데이터 마이닝 분석을 만들기 위해 오픈 소스 플랫폼을 선택한다면 R을 시도 할 것입니다.


옥타브 당신이 말할 수있는 예를 들어 MATLAB에 대한 몇 가지 구문 개선이 endif endforendfunction대신의 end, 훨씬 더 쉽게 적은 어느 것.

옥타브를 사용하면 동적으로 함수를 생성 할 수 있으며 펼쳐지고 함수 파일에 여러 함수가 정의되어 있습니다. 그것은 matlab의 단일 파일-하나의 함수 접근 방식보다 훨씬 좋습니다.

마지막으로,가 옥타브 parcellfunpararrayfun완전히 결여 MATLAB에 매우 강력한 병렬 처리 도구는있다. 거기에있다 parforMATLAB에,하지만 내 생각에 그 일을하는 가장 좋은 방법이 있습니다.

옥타브의 단점은 도구 상자에서 약간 뒤쳐져있는 것입니다. fsolve그리고 lsode어떤 M의 옥타브에,하지만 더 강력한, 조금 느린 것 같다. 또한 일부 사람들에게 큰 불만은 자체 릭 링크와 DAQ 툴박스가 부족한 것입니다. 그러나 그 부분은 어쨌든 독점이 될 것입니다.

Python / Numpy는 확실히 가치가 있습니다. 더 강력하지만 구문은 더 복잡한 코드 조각을 목표로합니다.


옥타브에는 매장이 GUI 구축이 매우 우수합니다. 동료를 사용하여 비 MATLAB을위한 도구를 만들기 위해 다수로 가이드를 사용합니다.guide


사용 사례의 경우 옥타브가 MATLAB보다 우수 할 수 있습니다.

  • C에 약간 더 가까운 코드를 사용하는 구문이 있습니다. 즉, + =,-=, 기본 함수 매개 변수 값, 큰 따옴표로 묶인 문자열 리터럴 등 ...

  • 칩이 프로세서보다 느리다고 가정하면 속도는 문제가되지 않을 것입니다.

  • matlab보다 훨씬 빠른 실행되기 때문에 테스트를 위해 쉘 펼쳐서 통합하는 것이 더 실용적입니다.

  • 전문 타이핑의 경우 플로팅이 입력합니다. 사람들은 MATLAB의 스타일에 익숙합니다.

  • 도구 상자가 최후로 부족한 것은 대상 문제가 아닙니다.

둘 다 사용하고 전환 할 때마다 다른 기능을 사용할 수 있습니다.


수치 분석이 아닌 통계에 대해 오픈 소스 대안이 어떻게 작동하는지 보는 것이 흥미 롭습니다. R (통계의 옥타브)은 요즘 상용 S-plus (통계의 matlab)보다 훨씬 인기가 있습니다. 다른 답변에서 발견 된 matlab에서 전환하지 않는 언급 된 문제는 R에도 적용 가능했습니다. 여전히 모두가 기여하기 시작하지만 이제 R은 더 나은 그래픽, 더 나은 패키지 및 더 이상 공급 업체에 존재하지 않는 표준입니다.

따라서 MATLAB보다 옥타브를 선호 할 수 있습니다.


MATLAB과 Octave 모든 경우에는 MATLAB이 포함 된 훌륭한 WikiBook 목록있습니다.

제 경험상 핵심 핵심은 옥타브로 잘 이식하는 MATLAB 툴박스는 다양한 수준의 구현을 가지고 있으므로 무엇을 코딩할지 결정이 달라집니다.

옥타브가 부족한 부분 인 AFAIK는 .NET 다른 코드 및 GUI 빌더와의 내장 한 통합입니다 guide(옥타브가 사용할 수있는 GUI 구축 도구가있는).

또한 다른 사람들이 지적했듯이 MATLAB으로 인터페이스하는 비용의 대부분은 인터페이스와 프로파일 링 도구입니다. 설치 된 코더는 아마도 대안으로 관리 할 수있는 곳이 있습니다.


Octave는 Matlab에없는 언어 구조를 지원합니다 (예 : 자동 증가 연산자, 문 등까지 할 수 있습니다). 이로 인해 Octave에서 개발 한 코드 (Matlab의 한계에 익숙하지 않은 사람에 의해)를 Matlab 환경으로 이식하는 것이 성가신입니다.

Octave FAQ 에는 가지 다른 제한 사항 / 차이가 있습니다.


여유가 있다면 Matlab을 옥타브보다 확실히 선호해야합니다.

옥타브에 대한 경험은 많지 전체 코드가 Matlab 도구 상자, 사용하는 경우 또는 Matlab GUI를 사용하는 경우 항상 문제가 보관됩니다.

나는 OpenOffice 대 MS Office와 같을 기대합니다. 많이 많이 사용되는 두통 줄만큼 많이 있습니다.


선형 회귀 및 2 차 프로그래밍 응용 프로그램을 Octave에 계속해서 이식했습니다.

선형 회귀 (백 슬래시 연산자)는 조정없이 작동했습니다. 2 차 프로그래밍의 경우 fmincon () 에서 sqp () 로 전환해야 비슷한 결과를 얻을 수 있습니다.

그럼에도 불구하고 Octave의 툴박스와 GUI는 지난 2 년 동안 빠르게 발전해 왔지만 실제로는 덜 성숙했습니다 (기본 작업에 너무 많은 시간을 보냈습니다).

참고 URL : https://stackoverflow.com/questions/3534867/why-when-should-i-prefer-matlab-over-octave

반응형