[matlab] 옥타브와 MATLAB의 차이점은 무엇입니까? [닫은]

저는 Python, Ruby 및 GNU Octave 또는 Matlab을 배울 지 결정하려는 일부 C를 아는 프로그래머입니다. 나는 그것들이 공통점 이 많다는 것을 알고 있지만 구문이 얼마나 유사한 지 또는 심지어 데이터 구조가 어떤지 명확하지 않습니다. 모든 사람들은 자신들이 “유사하다”고 말하지만 실제로 자신이 얼마나 비슷한지를 말하는 사람은 없습니다. 위의 링크는 구문 상 유사하거나 동일한 여러 예를 보여줍니다. 이것이 전체 언어에 해당합니까?

이미지 분석 라이브러리를 사용하여 더 과학적인 컴퓨팅을 수행하기 위해 일반적으로 언어를 배우려고합니다. 프로그래밍 할 수있는 다른 언어가 많이 있다는 것을 알고 있지만 조언자들은 과학에서 MATLAB 또는 Octave를 아는 것이 중요하다고 말합니다.

또한 Matlab은 비용 가치가 있습니까? 돈이 많지 않지만 도서관이나 다른 곳에서 중요한 차이점이 있으면 돈을 찾을 수 있다고 확신합니다.



답변

차이점의 전체 목록을 제공하는 대신 문제에 대한 내 견해를 알려 드리겠습니다.

제공하는 위키 페이지를주의 깊게 읽으면 “Octave가 두 가지를 모두 지원하지만 MATLAB은 첫 번째를 요구합니다”등과 같은 문장을 자주 보게됩니다. 이는 Octave 개발자가 Octave 구문 을 MATLAB 보다 “우수” 하게 만들려고한다는 것을 보여줍니다 .

이러한 태도는 옥타브의 목적을 완전히 잃게합니다. Octave의 기본 개념은 m-code를 실행하기위한 오픈 소스 대안을 갖는 것 입니다 (또는 아래 주석을보아야합니다). 그것이 “더 나은”것으로 시도한다면, 그것은 다른 사람들을 위해 노력합니다 . 이것은 대부분의 사람들이 그것을 사용하는 이유와 일치하지 않습니다. 필자의 경험에 따르면 MATLAB에서 개발 된 런닝 작업은 정말 간단하고 짧은 작업을 제외하고는 한 번에 작동하지 않습니다. 크기 조정 기능의 경우 Octave에서 작동하기 전에 항상 많은 작업을 번역해야합니다. 처음부터 다시 쓰지 마십시오. 이것이 더 나은 방법 , 나는 정말로 보지 못한다 …

또한 Octave를 배우면 Octave에서 MATLAB에서 허용되지 않는 많은 구문이 허용됩니다. 의미-Octave로 작성된 코드는 종종 많은 변환없이 MATLAB에서 작동하지 않습니다. 다른 방법으로도 호환되지 않습니다!

MathWorks에는 MATLAB을위한 많은 도구 상자가 있으며, Simulink 및 관련 제품이 옥타브와 실질적으로 동일하지 않습니다 (예, 모든 비용을 지불해야합니다) , 잘, 그것은 적어도 존재하는 여러 산업 표준, 입증 준수, 테스트 도구, 검증 도구, 요구 사항 관리 시스템, 보고서 생성, 훨씬 더 큰 커뮤니티 및 사용자 기반, 등 등 등 MATLAB) 단지 작은 부분이다 훨씬 더 큰 것. 옥타브는 … 옥타브입니다.

그래서 내 충고 :

  • 학교에서 MATLAB 비용을 지불하는지 알아보십시오. 종종 그들은 할 것입니다.
  • 그렇지 않으면 돈을 긁어 모을 수 있다면 MATLAB을 구입하여 올바르게 사용하는 법을 배우십시오. 장기적으로는 더 나은 결정입니다.
  • 실제로 돈을 얻을 수 없다면 Octave를 사용 하고 MATLAB의 구문을 배우고 Octave 전용 구문을 피하십시오. (참고 사항 참조)

이게 왜 마지막이야? 과학에서는 종종 MATLAB으로 완전히 작성된 큰 코드 기반이 있기 때문입니다. 교수, 엔지니어, 학생, 전문 코더, MATLAB의 복잡한 세부 사항을 모두 알고 많은 옥타브를 아는 많은 사람들이 있습니다.

새 직장을 얻고, 새 사무실에서 모든 사람들이 스페인어를하는 경우, 그것은 그들이 간단하기 때문에, 그때부터 영어를 시작하는 것이 모든 사람의 요구하는 종류의 건방진의의 스페인어처럼 / 말을하지 않습니다. MATLAB 및 Octave와 동일합니다.

NB- 모든 다운 보터가 자신의 주장과 의견이 맞지 않는 이유에 대해 의견을 남길 수 있다면 좋을 것입니다.)

참고 : 옥타브는 “전통 모드”(옥타브를 시작할 때 –traditional 플래그를 포함하여)에서 실행될 수 있으며 특정 옥타브 전용 구문을 사용할 때 오류가 발생합니다.


답변

차이점 목록에 대한보다 완전한 링크는 Octave의 FAQ에 있습니다. 이론적으로 Matlab에서 실행되는 모든 코드는 Octave에서 실행되어야하며 Octave 개발자는 Matlab과의 비 호환성을 버그로 취급합니다. 따라서 첫 번째 질문에 대한 답은 이론적으로 그렇습니다. 물론 모든 소프트웨어에는 버그가 있으며 Octave 또는 Matlab (예, Matlab도)은 안전하지 않습니다. 당신은 그들을보고 할 수 있으며 누군가가 그들을 해결하려고

Octave에는 추가 기능이 있습니다 . 대부분은 다른 프로그래밍 언어에 익숙한 경우 코드를 더 읽기 쉽고 이해하기 쉽게 만드는 추가 구문입니다.

그러나 옥타브에는 금전적 비용보다 더 많은 것이 있습니다. 옥타브는 자유라는 의미에서 자유롭지 만, 자유의 여지가 있지만, 이것이 소프트웨어 자유에 관해 열광하는 곳이라고 생각하지 않습니다.

옥타브에서만 이미지 처리를하고 이미지 패키지가 내 요구에 적합하다는 것을 알았습니다. 그러나 나는 너의 것이 무엇인지 모른다. 따라서 비용 가치가 있는지에 대한 나의 대답은 아니오이지만 확실히 다른 사람들은 동의하지 않습니다.


답변

MATLAB은 무엇보다도 상업용 제품입니다. 따라서 MATLAB의 모든 것이 기본적으로 작동합니다. 모든 핵심 기능은 견고하며, 특수 프로젝트를 수행하는 경우 MATLAB에 추가 기능이있을 수 있으며 추가로 도메인 별 .m 파일을 추가하는 추가 기능을 판매 할 수 있습니다. 저렴하지는 않지만 작동하며 불만없이 작업을 수행합니다.

옥타브는 항상 오픈 소스 정보를 원합니다. 무료이며 기회가있을 때마다 무료임을 상기시켜줍니다. 그것은 열정으로 Windows를 싫어하는 자원 봉사자들에 의해 개발되었습니다. 따라서 Octave는 Windows에서 굵게 실행됩니다. MATLAB의 많은 기능이 그대로 존재한다는 것은 놀라운 일입니다.

그러나 여기에 문지름이 있습니다. 사소하게 복잡한 것 이상을 시도 할 때마다 Octave는 갑자기 미묘하고 이해하기 어려운 방식으로 깨집니다. 죄송합니다. 터미널 드라이버가 OpenGL 레이어 깊숙이 넘쳤습니다. 인쇄 할 수 없습니다. 죄송합니다. 그림 플롯은 글꼴로 이상한 일을합니다. 왜 운이 좋은지 알아 내십시오. 죄송합니다. Octave와 다른 불분명 한 무료 소프트웨어 비트 사이에는 숨겨진 종속성이 있으므로 컴파일되지 않습니다. 그것이 무엇인지 알아내는 행운을 빕니다.

그리고 옥타브 응답은 헤이입니다! 무료 소프트웨어입니다! 모든 소스 코드가 있으며 모든 버그를 직접 해결할 수 있습니다! 시간과 자원이 무한하다면 자유 소프트웨어의 버그를 수정하는 데 모든 시간을 할애 할 수는 있지만 개인적으로는 그렇지 않습니다. 내가 학계에서 일했다면

따라서 핵심적으로 MATLAB을 선택할지 아니면 옥타브를 선택할지에 대한 문제는 하나의 질문으로 귀결됩니다. 흥미롭게도 상용 소프트웨어와 무료 소프트웨어 변형 중에서 선택할 때 그 질문은 항상 동일합니다.

그리고 질문은

시간보다 돈이 더 있습니까?


답변

옥타브는 기본적으로 MATLAB의 오픈 소스 버전입니다. 그것은 단지 그렇게 쓰여졌다. MATLAB에는 사용하기가 매우 쉬운 GUI가 있지만 다음 OCTAVE의 안정적인 릴리스에는 불안정한 릴리스에서 테스트 한 GUI가 있으며 환상적입니다. 옥타브는 MATLAB의 개발에 수백만 달러의 자금이 지원되는 자원 봉사자 그룹에 의해 개발되고 유지되기 때문에 훨씬 더 버그가 많습니다. 나는 여전히 학생이며 MATLAB의 학생 버전을 사용하고 있지만 GUI가있는 안정적인 버전이 출시되면 Octave로 넘어갈 생각입니다.

MATLAB은 아마도 Octave보다 훨씬 강력하고 알고리즘은 더 빠르게 실행되지만 대부분의 응용 프로그램에서 Octave는 충분하며 내 생각에 Octave가 완전히 무료 인 놀라운 도구입니다.

아카데믹 버전을 사용할 수는 있지만 MATLAB을 사용한다고 말하지만 옥타브로 전환하는 것은 동일한 구문을 사용하므로 매끄럽게 진행되어야합니다.

마지막으로 SIMULINK의 문제가 있습니다. 시뮬레이션 또는 제어 시스템 설계를 원한다면 (다른 용도로는 백만 개가있을 수 있음) SIMULINK는 환상적이고 MATLAB과 함께 제공됩니다. Scilab은 분명히 ‘좋은’오픈 소스 대안이지만 시도하지는 않았지만 다른 것에 대해서는 가까운 것으로 생각하지 않습니다.

평화.


답변

방금 Octave를 사용하기 시작했습니다. 그리고 사람들이 Matlab을 사용하는 것을 보았습니다. 위에서 언급 한 한 가지 주요 차이점은 Octave에는 명령 줄 인터페이스가 있고 Matlab에는 GUI가 있다는 것입니다. 저에 따르면 GUI를 갖는 것은 디버깅에 매우 좋습니다. Ocatve에서는 행렬의 길이 등을 확인하기 위해 명령을 실행해야하지만 Matlab에서는 좋은 인터페이스를 사용하여 모든 것을 멋지게 보여줍니다. 그러나 Octave는 무료이며 기본 작업에 좋습니다. 기본 작업 만 수행하거나 현재 필요한 것이 확실하지 않은 경우 옥타브로 이동하십시오. 실제로 필요하다고 느끼면 Matlab에 대한 비용을 지불 할 수 있습니다.


답변

Matlab을 그렇게 인기 있고 특별하게 만드는 것은 다른 분야의 우수한 도구 상자입니다. 주요 목표는 Matlab을 배우는 것이므로 Octave 또는 Matlab로 작업하는 경우 전혀 다르지 않습니다!

멋진 툴박스없이 Matlab을 구매하는 것 (기본적으로 전공에 달려 있음)은 실제로 합리적인 비용이 아닙니다!

옥타브로 시작하는 것이 좋으며 인터넷에서 Matlab에 관한 많은 튜토리얼을 따라갈 수 있습니다.


답변

Rody Oldenhuis 답변에 추가하고 싶은 것은 많지 않습니다. 필자는 일반적으로 내가 작성한 모든 함수가 Matlab에서 실행되어야한다는 전략을 따릅니다.

다음 사용 사례에 대해 두 시스템에서 테스트 한 일부 특정 기능 :

a) 옥타브에는 라이센스 서버가 필요하지 않습니다 (예 : 기관에서 로컬 라이센스를 지원하지 않는 경우). 스크립트를 사용하는 시스템이 인터넷에 연결되어 있지 않고 매우 오랫동안 (실험실의 한 구석에) 실행되어 많은 다른 사용자가 사용하는 상황에서 한 번 사용했습니다. 비고 : 라이센스 비용이 아니라 기술 관련 문제입니다.

b) Octave는 Rasberry Pi ( http://wiki.octave.org/Rasperry_Pi ) 와 같은 다른 플랫폼을 지원 합니다.