Octave보다 MATLAB을 선호하는 이유 / 언제?
우리는 전에 슈 많은 작업에서 우리는 강화 하드웨어에서 C 구현을 수행하기 위해 더 높은 수준의 언어로 알고리즘을 구축해야합니다.
지금까지이를 MATLAB을 왔지만 라이선스 비용이 기 시작했습니다. MATLAB 코드를 Octave로 이식하는 것을 고려하고 있습니다.
그렇게하지 않는 특별한 이유 가 있습니까? 특히 MATLAB 사용을 고집하는 외부 파트너가있는 경우에는 깨질까요? 예상 할 수있는 성능상의 불 환원이 있습니까?
2008 년에도 똑같은 일을 시도했습니다. 나는 다음과 같은 쇼 스토퍼를 빠르게 발견했습니다.
- 도구 상자는 완전하지 않고 잘 테스트되지 않습니다. 큰 쇼 스토퍼는 특히 내 작업이 크게 의존하지 않는 것입니다.
- Octave 디버거와 프로파일 러는 Matlab에 비해 원시적이었습니다.
- 다른 사람들과 함께 일하면 요구하는 변화가 매우 어려울 수 있습니다.
- 도구 상자를 사용하는 경우 해당 도구 상자를 직접 사용하는 것입니다.
- 옥타브는 출판 품질이 아닙니다.
그러나 나는 일반적으로 Octave가 Matlab과 얼마나 상호 작용하는지에 대해 깊은 인상을 받았다고 말해야합니다. Matlab을 기본적으로 사용한다면 운이 좋을 수도 있습니다. 마지막으로 이것은 2008 년입니다. 2 년 안에 상황이 많이 바 있습니다.
내 머리에서 :
- 두 학기 전 기계 학습 과정에서 숙제를 강화했을 때 발견했듯이 Octave에는없는 도구 상자가 많이 있습니다.
- 옥타브는 훨씬 열등한 디버거를 가지고 있습니다. 함께 일하는 것은 거의 불가능합니다.
- Matlab은 다양한 유형의 작업에서 훨씬 빠를 사용합니다.
- Matlab의 많은 것이 훨씬 더 좋습니다.
- 옥타브에는 기본 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
endfor
와 endfunction
대신의 end
, 훨씬 더 쉽게 적은 어느 것.
옥타브를 사용하면 동적으로 함수를 생성 할 수 있으며 펼쳐지고 함수 파일에 여러 함수가 정의되어 있습니다. 그것은 matlab의 단일 파일-하나의 함수 접근 방식보다 훨씬 좋습니다.
마지막으로,가 옥타브 parcellfun
와 pararrayfun
완전히 결여 MATLAB에 매우 강력한 병렬 처리 도구는있다. 거기에있다 parfor
MATLAB에,하지만 내 생각에 그 일을하는 가장 좋은 방법이 있습니다.
옥타브의 단점은 도구 상자에서 약간 뒤쳐져있는 것입니다. 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
'ProgramingTip' 카테고리의 다른 글
mocha.js로 여러 파일의 테스트 결합 (0) | 2020.10.12 |
---|---|
"계속해서 아무 키나 누르시겠습니까?"를 시뮬레이션하는 방법 (0) | 2020.10.12 |
예쁜 인쇄 std :: tuple (0) | 2020.10.12 |
CSS 선택기 (ID에 텍스트 일부 포함) (0) | 2020.10.12 |
Hibernate Query.list ()를 List로 캐스팅하는“적절한”방법은 무엇입니까? (0) | 2020.10.12 |