Matlab은 무엇에 좋은가? 왜 대학에서 그렇게 사용됩니까? 파이썬보다 언제 더 낫습니까? [닫은

StackOverflow https://stackoverflow.com/questions/179904

  •  05-07-2019
  •  | 
  •  

문제

나는 최근에 수업에 대한 matlab 기본 사항을 배우라는 요청을 받았습니다.

대학에서 일하는 연구원과 사람들에게 무엇이 그렇게 시원하게 만드는가? 나는 매트릭스로 작업하고 물건을 플로팅하는 것이 멋지다는 것을 보았습니다 ... (일부 라이브러리를 사용하여 파이썬에서 쉽게 수행 할 수있는 것).

함수를 작성하거나 파일을 구문 분석하는 것은 고통 스럽습니다. 나는 아직도 처음에, 내가 무엇을 놓치고 있습니까?

"진정한"세계에서, 나는 그것을 어떻게 사용해야합니까? 파이썬보다 언제 더 잘할 수 있습니까? 더 나은 것은 내 말 : 공연하는 것을 쉽게 쓰는 방법.


UPDATE 1: 내가 가장 알고 싶은 것 중 하나는 "내가 뭔가를 놓치고 있습니까?"입니다. :디

UPDATE 2: 답변 해주셔서 감사합니다. 내 질문은 Matlab을 사거나 구매하지 않는 것이 아닙니다. 이 대학은 라이센스를 깨뜨리지 않고 구식 Matlab (Matlab 5 추측)의 사본을 무료로 제공 할 수 있습니다. 나는 그 능력에 관심이 있고 더 깊은 연구를받을 자격이 있다면 기초적인 시험을 통과하기 위해 Oder의 Matlab : P) 현실 세계의 특정 종류의 작업에 대해 Python보다 실제로 낫습니다.

도움이 되었습니까?

해결책

아담은 부분적으로 만 옳습니다. 대부분의 경우가 아니라 수학자들은 결코 그것을 만지지 않을 것입니다. 컴퓨터 도구가 전혀 없다면 수학 또는 단풍. 반면에 엔지니어링 부서는 종종 그것에 의존하며 일부 응용 수학자에게는 확실히 유용한 것들이 있습니다. 또한 일부 지역의 산업에서도 많이 사용됩니다.

Matlab에 대해 알아야 할 것은 래퍼로 시작했다는 것입니다. 포트란 선형 대수 라이브러리. 오랫동안, 그것은 "모든 세상은 복식 (플로트)의 배열이라는 태도를 가졌습니다. 언어로서, 그것은 매우 유기적으로 성장했으며, 프로그래밍 언어로 보면 매우 구운 결함이 있습니다.

그러나 특정 유형의 연구를 수행하기위한 환경으로 보면 실제 강점이 있습니다. 플로팅 포인트 선형 대수를하는 것만 큼 좋습니다. 표기법은 간단하고 강력하며 구현은 빠르고 신뢰할 수 있습니다. 플롯 및 기타 대화식 작업을 생성하는 데 매우 능숙합니다. 특정 작업을위한 좋은 코드가있는 '도구 상자'가 많이 있으며 저렴한 가격이 있습니다. 수치 코드를 공유하는 대규모 사용자 커뮤니티가 있습니다 (Python + Numpy 적어도 같은 리그에는 아무것도 없습니다)

파이썬, 사마귀 및 모두는 훨씬 더 나은 프로그래밍 언어입니다 (다른 많은 것들과 마찬가지로). 그러나 도구 측면에서 10 년 정도 뒤쳐졌습니다.

핵심 요점은 Matlab을 사용하는 대다수의 사람들이 실제로 프로그래머가 아니며 원하지 않는다는 것입니다.

일반적인 프로그래밍 언어를위한 선택적인 선택입니다. 기발하고 많은 작업이 느리게 진행되며 (효율적인 코드를 얻기 위해 물건을 벡터화해야 함) 외부 세계와 통합하기는 쉽지 않습니다. 반면에, 그것이 잘하는 것들에 대해서는 매우 좋습니다. 비교하는 것은 거의 없습니다. 합리적인 지원을받는 회사가 있으며 사람이 몇 년에 걸린 수를 알고 있습니다. 이것은 산업에서 중요 할 수 있습니다.

Python과 Matlab 비교를 엄격히 살펴보면 대부분 다른 작업을위한 다른 도구입니다. 그들이 조금 겹치는 영역에서는 더 나은 경로가 무엇인지 말하기가 어렵습니다 (당신이하려는 일에 많이 다릅니다). 그러나 대부분 Python은 Matlab의 핵심 강점에 능숙하지 않으며 그 반대도 마찬가지입니다.

다른 팁

대부분의 답변은 요점을 얻지 못합니다.

Matlab이 너무 좋고 널리 사용되는 이유가 있습니다.

매우 빠른 코딩

저는 컴퓨터 비전 박사 과정 학생이며 4 년 동안 MATLAB을 사용해 왔습니다. 박사 학위를 받기 전에 C ++, Java, PHP, Python 등 다양한 언어를 사용하기 전에 ... 대부분의 컴퓨터 비전 연구원은 독점적으로 MATLAB을 사용하고 있습니다.

1) 연구자들은 빠른 프로토 타이핑이 필요합니다

연구 환경에서, 우리는 종종 새로운 아이디어를 가지고 있으며, 그 방향으로 계속 유지할 가치가 있는지 신속하게 테스트하고 싶습니다. 그리고 대부분 우리가 코드하는 것의 작은 하위 부분만이 유용 할 것입니다.

Matlab은 종종 있습니다 실행 시간이 느려집니다, 그러나 우리는별로 신경 쓰지 않습니다. 우리는 어떤 방법이 성공할 것인지 미리 알지 못하기 때문에 많은 것을 시도해야합니다. 우리 병 목은 프로그래밍 시간입니다, 우리 코드는 결과를 게시하기 위해 몇 번이나 실행되기 때문에 그게 전부입니다.

그래서 Matlab이 어떻게 도움이 될 수 있는지 봅시다.

2) 내가 필요한 모든 것이 이미 있습니다

Matlab은 내가 필요한 많은 기능을 가지고 있으므로 항상 재발 명 할 필요가 없습니다.

행렬의 인덱스를 2D 좌표로 변경하십시오. ind2sub 이미지의 모든 패치를 추출하십시오. im2col; 이미지의 히스토그램 계산 : hist(Im(:)); 목록에서 고유 한 요소를 찾으십시오 unique(list); 행렬의 모든 벡터에 벡터를 추가하십시오 bsxfun(@plus,M,V); N 차원 어레이에 대한 컨볼 루션 convn(A); 코드의 하위 부분의 계산 시간을 계산합니다. tic; %%code; toc; 이미지를 자르기위한 그래픽 인터페이스 : imcrop(im);

목록은 매우 길을 수 있으며 도움을 사용하여 찾기가 매우 쉽습니다.

가장 가까운 것은 파이썬입니다 ... 그러나 그것은 파이썬의 고통 일뿐입니다. 필요한 기능의 이름을 찾으려면 매번 Google에 가야하며 패키지를 추가해야하며 패키지는 호환되지 않습니다. 서로, 매트릭스 변경의 형식, Convolution 함수는 복식 만 처리하지만 숯을 줄 때 오류가 발생하지 않고 잘못된 출력을 제공합니다 ... 아니요.

3) IDE

예 : 스크립트를 시작합니다. 행렬로 인해 오류가 발생합니다. 명령 줄로 여전히 코드를 실행할 수 있습니다. 나는 그것을 시각화한다 : imagesc(matrix). 나는 매트릭스의 마지막 줄이 이상하다는 것을 알았다. 나는 버그를 수정합니다. 모든 변수는 여전히 설정되어 있습니다. 나머지 코드를 선택하고 F9를 눌러 선택을 실행하면 모든 것이 계속됩니다. 디버깅이 빠르게됩니다, 감사합니다.

Matlab은 실행 전에 내 오류 중 일부를 강조합니다. 그래서 나는 문제를 빨리 볼 수 있습니다. 내 코드를 더 빨리 만들 수있는 방법을 제안합니다.

굉장합니다 프로파일 러 IDE에 포함됩니다. kcahcegrind는 그것에 비해 사용하기에 그렇게 고통 스럽습니다.

Python의 Ides는 끔찍합니다. ipython이없는 파이썬은 사용할 수 없습니다. 나는 Ipython을 사용하여 디버그를하지 않습니다.

+자동 완성, 기능 인수에 대한 도움, ...

4) 간결한 코드

매트릭스의 모든 열을 정규화하려면 (항상 필요한 경우) 다음을 수행합니다.bsxfun(@times,A,1./sqrt(sum(A.^2)))

매트릭스에서 제거하려면 모든 컬럼이 작은 합을 갖습니다.

A(:,sum(A)<e)=[]

GPU에서 계산을 수행합니다:

gpuX = gpuarray(X); 
%%% code normally and everything is done on GPU

내 코드를 구분하기 위해 :

parfor n=1:100
%%% code normally and everything is multi-threaded

어떤 언어를 이길 수 있습니까?

물론, 나는 루프를 만들 필요가 거의 없으며, 모든 것이 함수에 포함되어있어 코드를 읽기 쉽고 지수로 두통이 없습니다. 그래서 프로그램하고 싶은 것에 초점을 맞출 수있는 방법이 아니라 프로그래밍하는 방법에 집중할 수 있습니다.

5) 도구 플로팅

Matlab은 플로팅 도구로 유명합니다. 그들은 매우 도움이됩니다.

Python의 플로팅 도구에는 기능이 훨씬 적습니다. 그러나 한 가지는 매우 성가신 것입니다. 스크립트 당 한 번만 그림을 그릴 수 있습니까 ??? 스크립트를 따라 있다면 각 단계마다 물건을 표시 할 수 없습니다 ---> 쓸모없는 것입니다.

6) 문서

모든 것이 매우 빠르게 액세스 할 수 있으며 모든 것이 맑고, 기능 이름이 잘 선택됩니다. Python을 사용하면 항상 Google 물건, 포럼 또는 stackoverflow를보고 .... 완전한 시간 돼지를보아야합니다.

추신 : 마지막으로, 내가 Matlab과 함께 싫어하는 것 : 가격

나는 연구에서 수년 동안 Matlab을 사용해 왔습니다. 선형 대수에 적합하며 잘 작성된 도구 상자 세트가 있습니다. 가장 최근의 버전은 일반 목적 언어 (더 나은 최적화, 훨씬 더 나은 객체 모델, 더 풍부한 범위 규칙 등)에 더 가깝게 진행되기 시작했습니다.

지난 여름, 나는 Matlab 대신 Python + Numpy를 사용한 직업을 가졌습니다. 나는 속도의 변화를 즐겼다. 그것은 "진정한"언어 (그리고 모든 것을 수반하는 모든)이며 방송 어레이와 같은 훌륭한 숫자 기능이 있습니다. 나는 또한 Ipython 환경을 정말 좋아합니다.

다음은 Matlab에 대해 선호하는 것들이 있습니다.

  • 일관성: Mathworks는 도구 상자를 서로처럼 보이고 작동시키기 위해 많은 노력을 기울였습니다. 그들은 완벽한 일을하지 않았지만 수십 년 된 코드베이스에서 가장 잘 본 것 중 하나입니다.
  • 선적 서류 비치: 문서화 품질이 드물기 때문에 Numpy 및/또는 Python에서 몇 가지 사항을 알아내는 것이 매우 실망 스럽습니다. 어떤 것들은 매우 잘 기록되어 있지 않습니다. Matlab을 흉내내는 것처럼 보이는 것을 볼 때 종종 가장 실망 스럽지만 상당히 동일하게 작동합니다. 소스를 잡을 수 있다는 것은 매우 귀중합니다 (공정하게, 대부분의 Matlab 도구 상자는 소스와 함께 배송됩니다)
  • 소형 : 내가하는 일을 위해 Matlab의 구문은 종종 더 작지만 항상 그런 것은 아닙니다.
  • 기세: 지금 변경하기에는 너무 많은 MATLAB 코드가 있습니다

기존의 큰 코드베이스가 없다면 Python + Numpy로 전환하는 것을 진지하게 고려합니다.

모든 것을 잡아. 계산기를 테트리스를 재생하도록 마지막으로 프로그래밍 한 시간은 언제입니까? 실제로 128K의 RAM에서 원하는 것을 쓸 수 있다고 생각 했습니까? 아마도. Matlab은 거대한 매트릭스를 다루지 않는 한 프로그래밍을위한 것이 아닙니다. 크런치 및/또는 플롯에 기가 바이트의 데이터에 메가 바이트가있을 때 채찍질하는 그래프 계산기입니다. 기본적인 것들만 배우지 만 파이썬을 그래프 계산기로 만들려고 노력하지 마십시오.

Matlab에서 위기, 음모 또는 탐색을 원할 때 그리고 Python이 제공하는 모든 것을 갖고 싶을 때 빠르게 느낌을받을 수 있습니다. 많은 엔지니어들이 Python 또는 Perl에서 사전 및 사후 처리로 전환합니다. 때때로 단단한 비트를 위해 Matlab에게 전화를 걸 도도합니다.

그것들은 완전히 다른 도구입니다. 다른 도구는 당신이 하나를 다른 것으로 바꾸지 않고 기본 강점을 먼저 배워야합니다. 돈을 절약 할 수 있도록 부여 나는 옥타브 또는 스키 칩을 쉽게 사용하고 Perl 또는 Python의 희소 행렬과 함께 일하는 법을 배웁니다.

Matlab은 배열 조작, 전문 수학 기능을 수행하고 멋진 플롯을 빠르게 만드는 데 유용합니다.

많은 배열/매트릭스 조작을 사용할 수 있다면 큰 프로그램에만 사용할 것입니다.

보다 공식적인 패키지만큼 IDE에 대해 걱정할 필요는 없으므로 프로그래밍 경험이 많지 않은 학생들이 픽업하는 것이 더 쉽습니다.

Matlab은 인기 있고 널리 적용된 정교한 소프트웨어 패키지입니다. 광범위한 "도구 상자"가 있기 때문에 수학 소프트웨어라고 생각하는 것은 실수 일 것입니다. 나는 최근에 사용했다 matplotlib 데이터베이스에서 일부 데이터를 플로팅하기 위해 Matlab의 모든 종과 휘파람이 필요하지 않고 작업을 수행했습니다. 그러나 모든 상황에서 Python과 Matlab을 비교하는 것은 적절하지 않을 수 있습니다. 다른 모든 것과 마찬가지로 결정은해야 할 일에 달려 있습니다.

제어 시스템 설계 및 시뮬레이션 및 대학원 학교에서 이미지 처리에 Matlab을 사용했습니다. 이러한 필드의 경우 Matlab은 강력한 제어 및 이미지 처리 도구 상자 때문에 가장 의미가 있습니다. 모든 사람이 언급했듯이, 작성 해야하는 모든 MATLAB 스크립트에 사용되는 배열 작업은 MATLAB에서 매우 쉽습니다.

Matlab의 또 다른 좋은 점은 제작 된 도구 상자 기능을 사용하여 프로토 타이핑 및 아이디어를 시도하는 것이 매우 쉽고 빠르다는 것입니다. 예를 들어, 이미지를 가져 와서 히스토그램을 계산하거나 간단한 처리를 수행하는 데 노력이 필요하지 않습니다. Matlab의 한 가지 단점은 해석 된 특성으로 인해 속도 일 수 있습니다. 그러나 실제로 속도가 필요한 경우 C/C ++ 등으로 테스트 된 논리를 구현할 수 있습니다.

Python과의 추가 비교를 위해 Matlab은 외부 라이브러리를 둘러보고 추가 기능을 구현할 필요없이 작업을 수행 할 수있는 전체 패키지를 제공한다고 말할 수 있습니다.

내가 본 Matlab에 대한 마지막 요점 중 하나는 여기서 답에 언급되지 않았습니다. SIMULINK. Simulink로 더 큰 시스템을 디자인하고 시뮬레이션하는 것이 더 쉽습니다.

마지막으로, 다시 말하지만, 그것은 모두 해결해야 할 문제에 달려 있습니다. 문제 도메인이 MATLAB의 도구 상자 중 하나를 사용할 수 있고 MATLAB에 액세스 할 수 있다면이를 해결하기에 적합한 도구가 있는지 확인할 수 있습니다.

다른 사람들이 언급했듯이 Matlab은 Matrix Manipulation에서 훌륭하며 원래 잘 알려진 것의 확장으로 제작되었습니다. 블라스 그리고 라크 선형 대수에 사용되는 라이브러리. 그것은 Java와 같은 다른 언어와 잘 어울리 며, 엔지니어링 및 과학 회사에서 잘 개발되고 문서화 된 라이브러리에 대해 선호합니다. Python과 Numpy에 대해 알고있는 것에서 Matlab의 기본 기능을 많이 공유하지만 라이브러리와 함께 폭과 깊이의 기능이 없습니다.

개인적으로, 나는 인턴쉽에서 배운 것이기 때문에 Matlab을 사용합니다. 그것이 제가 대학원에서 사용한 것입니다. 그것이 제가 첫 직장에서 사용한 것입니다. 나는 파이썬 (또는 다른 언어)에 대해 아무것도 없습니다. 그것은 제가 사용하는 것입니다.

또한 @가 언급 한 Scilab 외에 또 다른 무료 버전이 있습니다.짐 c GNU에서 전화했습니다 옥타브.

개인적으로, 나는 Matlab을 Python 또는 C와 같은 본격적인 프로그래밍 언어보다는 몇 가지 스크립팅 기능을 갖춘 대화 형 매트릭스 계산기 및 플로팅 도구로 생각하는 경향이 있습니다. 성공의 이유는 매트릭스 물건과 플로팅 작업에서 작업하기 때문입니다. 상자, 그리고 실제 프로그래밍 지식이 거의없는 몇 가지 매우 구체적인 작업을 수행 할 수 있습니다. 언어는 지적한 바와 같이, 가장 간단한 문자열 처리와 같은보다 일반적인 목적 작업에 사용하기에 매우 실망 스럽습니다. 구문은 기발한 것이며 100 줄 이상의 프로젝트에 필요한 추상화로 만들어지지 않았습니다.

사람들이 MATLAB을 심각한 프로그래밍 언어로 사용하려고하는 이유는 대부분의 엔지니어 (예외가 있습니다. 제 학위는 생의학 공학에 있고 프로그래밍을 좋아합니다)는 끔찍한 프로그래머이며 프로그래밍을 싫어하기 때문입니다. 그들은 대학에서 주로 매트릭스 수학을 위해 Matlab을 가르치고 Matlab 학습의 일환으로 기초 프로그래밍을 배우고 Matlab이 충분하다고 가정합니다. 나는 Matlab 이외의 언어를 아는 사람을 아는 사람을 생각할 수 없지만 여전히 순수한 숫자 크 런칭 애플리케이션 이외의 다른 것에 Matlab을 사용합니다.

대학에서 너무 많이 사용 된 가장 큰 이유는 수학 교수진이 익숙해지고 이해하며 커리큘럼에 통합하는 방법을 알고 있기 때문입니다.

사이 matplotlib+pylab 그리고 Numpy @adam Bellaire가 제안한 것처럼 문화적 관성 이외의 Matlab과 Python 사이에는 실제 차이가 크다고 생각하지 않습니다.

나는 당신이 아주 좋은 지적이라고 생각하며 그것은 내가 일하는 회사에서 자란 것입니다. 이 회사는 관련 라이센스 비용으로 인해 MATLAB를 적용 할 수있는 능력이 제한되어 있습니다. 한 개발자는 Python이 매우 적합한 대체품임을 증명했지만 그 귀의 소유자에게는 무지한 귀에 떨어졌습니다.

  1. 우리 중 많은 사람들이 그것을 사용하기를 원했지만 회사의 어느 누구도 파이썬을 알지 못했습니다.
  2. Matlab은 문제를 해결하기 위해 이름, 회사 및 태스크 포스를 가지고 있습니다.
  3. 재 작성해야 할 레거시 MATLAB 프로젝트가 많이 없었습니다.

그것이 £ 10,000 (??)의 가치가 있다면 그만한 가치가 있어야합니다 !!

나는 당신과 함께 있습니다. Python은 Matlab을 매우 잘 대체합니다.

회사가 MATLABS 기능의 5% ~ 10%를 사용한다고 들었습니다. 이것이 원래 포스터와의 계약의 기초입니다.

Matlab은 환상적인 도구입니다

  • 프로토 타이핑
  • 엔지니어링 시뮬레이션 및
  • 빠른 데이터 시각화

데이터 세트에서 아이디어를 매우 효과적으로 플레이하고 시각화하고 테스트 할 수 있습니다. 제품 개발에 사용되는 다른 소프트웨어 언어에 대한 대안으로 간주되어서는 안됩니다. 비싸지 만 위의 작업에 대해 적극 권장합니다. 옥타브 그리고 파이썬은 따라 잡고 있습니다.

순수한 관성 인 것 같습니다. 사용중인 경우 모든 사람이 너무 바빠서 IDL 또는 Numpy를 충분히 세부하여 전환하기에 충분히 학습 할 수 없으며 좋은 작업 프로그램을 다시 작성하고 싶지 않습니다. 운 좋게도 그것은 엄격하게 사실이 아니지만 Matlab이 오랜 시간이 걸릴 정도로 충분히 사실입니다. Fortran처럼 (내가 일하는 곳에서 적극적으로 사용!)

산업에서 유용한 주된 이유는 핵심 기능 위에 구축 된 플러그인 때문입니다. 지난 몇 년 동안 거의 모든 활성 MATLAB 개발이 이들에 중점을 두었습니다.

불행히도, 당신은 학업 환경에서 이것을 사용할 기회가 많지 않습니다.

나는이 질문이 오래되었다는 것을 알고 있으므로 더 이상 감시되지 않을 수도 있지만, 언급해야한다고 생각했습니다. Georgia Tech의 항공 우주 엔지니어로서, 자질이 없으면 Matlab은 훌륭하다고 말할 수 있습니다. Excel 스프레드 시트와 신속하게 인터페이스하여 높고 빠른 로켓이 비행하는 방법, 바람이 동일한 로켓에 어떤 영향을 미치는지, 다른 엔진의 중요한 방법에 대한 데이터를 가져올 수 있습니다. 로켓 외에도 자동차, 트럭, 항공기, 우주선 및 운동에도 비슷한 개념이 작용합니다. 많은 양의 데이터를 가져와 모든 데이터를 조작하고 결과가 필요한지 확인할 수 있습니다. 무언가가 꺼져 있으면 프로그램을 실행할 때마다 다시 컴파일하지 않고도 프로그램을 디버깅하는 오류가 발생하는 라인 브레이크를 추가 할 수 있습니다. 다른 프로그램보다 느립니다. 글쎄, 기술적으로. NVIDIA 그래픽 프로세서에서 숫자 위기를하고 싶다면 더 빠를 것입니다. 더 빠르지 만 디버깅이 더 어려워지면 더 많은 노력이 필요합니다.

일반적인 프로그래밍 언어로서 Matlab은 약합니다. Python, Java, Actionscript, C/C ++ 또는 기타 범용 언어에 대해서는 작동하지 않습니다. 그것은 엔지니어링 및 수학 틈새 시장을위한 것이며 이름은 암시하며 환상적으로 수행합니다.

Matlab은 일반적으로 사용 가능한 라이브러리 주변의 포장지였습니다. 그리고 많은 경우에도 여전히 그렇습니다. 더 큰 데이터 세트에 도달하면 검사 및 특수 케이싱 공통 문제 (예 : 유용한 희소 행렬로 축소) 및 처리 모서리 케이스를 포함하여 많은 추가 최적화가 있습니다. 종종 표준 형식의 일반 기능에 문제를 제출할 수 있으며 데이터를 기반으로 사용할 최상의 기본 알고리즘을 결정합니다. 작은 N의 경우 모든 알고리즘은 빠르지 만 MATLAB은 최적의 알고리즘을 비 문제로 결정합니다.

이것은 Matlab을 싫어하는 사람이 작성하고 통합 문제로 인해이를 대체하려고 시도했습니다. 귀하의 질문에서, 당신은 Matlab 5를 얻고 코스에 사용하는 것을 언급합니다. 그 수준에서 당신은옥타브, 동일한 구문을 가진 오픈 소스 구현. 나는 그것이 지금까지 Matlab 5 레벨에 달려 있다고 생각합니다 (나는 그것과 만 놀고 있습니다). "시험을 통과 할 수 있습니다". Bare Matlab 기능의 경우 가깝게 보입니다. 도구 상자 지원이 부족합니다 (다시, 주로 필드의 엔지니어에게 친숙한 형태로 기능 호출을 재구성하고 사용할 올바른 기본 알고리즘을 선택합니다).

Matlab이 대학에서 인기있는 한 가지 이유 중 하나는 대학에서 많은 것들이 인기있는 것과 같은 이유입니다. 친숙한 교수들이 많이 있으며, 상당히 강력합니다.

나는 특히 Matlab의 초기 능력에 특히 관심이있는 많은 사람들과 일련의 작업을 수행하는 대신 GPU를 활용할 수있는 많은 사람들과 이야기했습니다. 대학원에서 Python을 사용한 후, 나는이 경우 Matlab과 함께 일하기 위해 핥아주기를 바랍니다. 벡터 공간 계산을 산들 바람으로 만들 것입니다.

MATLAB을 사용한 지 얼마되지 않았지만 메모리에서 추가 플러그인과 관련하여 (추가 플러그인이 있음에도 불구하고) DSP에서 알고리즘을 실현할 수 있도록 소스를 생성 할 수 있습니다.

Python은 범용 프로그래밍 언어이므로 Matlab에서 할 수있는 Python에서 모든 것을 할 수없는 이유는 없습니다. 그러나 Matlab은 여러 가지 다른 도구를 제공합니다. 매우 광범위한 DSP 기능, 광범위한 S 및 Z 도메인 기능 배열.

이들 모두는 파이썬으로 손으로 코딩 될 수 있지만 (범용 언어이기 때문에), 당신이 뒤 따르는 모든 것이 Matlab에 돈을 쓰는 결과가 더 저렴한 옵션입니까?

이러한 기능은 성능을 위해 조정되었습니다. 예를 들어. Numpy에 대한 문서는 푸리에 변환이 2 포인트 데이터 세트의 전원에 최적화되어 있음을 지정합니다. 이해하면서 Matlab은 2의 전력뿐만 아니라 데이터 세트의 크기에 맞게 가장 효율적인 푸리에 변환을 사용하도록 작성되었습니다.

편집 : 아, 그리고 Matlab에서는 감각을 생산할 수 있습니다. 보고있다 데이터를 제시 할 때 중요합니다. 다시 말하지만, 다른 도구를 사용하는 것은 불가능하지 않습니다.

Matlab이 "매트릭스로 작업하고 물건을 플로팅하는 것이 멋지다"고 언급했을 때 자신의 질문에 대답했다고 생각합니다. 많은 매트릭스 수학과 시각화가 필요한 모든 응용 프로그램은 아마도 Matlab에서 가장 쉽게 수행 할 수 있습니다.

즉, Matlab의 구문은 어색하고 언어의 나이를 보여줍니다. 대조적으로, Python은 훨씬 더 좋은 범용 프로그래밍 언어이며, 올바른 라이브러리는 Matlab이하는 일을 많이 할 수 있습니다. 그러나 MATLAB은 항상 벡터 및 매트릭스 조작을위한 Python보다 더 간결한 구문을 가질 것입니다.

대부분의 프로그래밍에 신호 처리 및 일부 통계 기술과 같은 이러한 종류의 조작이 포함된다면 MATLAB은 더 나은 선택이됩니다.

첫 번째 발동기 이점. MATLAB 1970 년대 후반부터 주변에있었습니다. Python은 최근에 왔으며 Matlab 유형 작업에 적합한 라이브러리가 더 최근에 나왔습니다. 사람들은 matlab에 익숙해 져서 그것을 사용합니다.

Matlab은 숫자 크런치를 잘합니다. 또한 매트릭스 및 매트릭스 조작. 라이브러리에 구축 된 많은 도움이 있습니다 (어떤 버전에 따라 다름) 방정식을 계산하려는 경우 파이썬보다 사용하기가 더 쉽다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top