매트랩의 미친 문법

매트랩의 문법은 쉽지만 골때린다. 예를 들어, 함수에 키워드로 변수를 넘겨줄 때 fn(x,y,’kwdname’,keyvalue) 이런식으로, kwdname을 쓰고 “그냥 그 다음에” 거기에 해당하는 값을 써주는데, 다른 언어에서는 그런걸 지원하지 않거나, kwdname 다음에 쉼표(,)가 아니라 다른 기호(예를 들어 =라든가)를 써서 두 값이 이름과 값으로 짝지어진 것을 구별해준다.

그렇다. 한국어 중에는 알고도 헷갈리는 단어가 많다. “사과”라든가 “패자”라든가. 하지만 프로그래밍 언어에도 그런게 있으면 굉장히 골때리는데… 매트랩에서는 작은따옴표를 여러가지 용도로 쓴다. ‘를 숫자 뒤에 쓰면 켤레복소수, 행렬 뒤에 쓰면 공액행렬, 행렬 뒤에 점 붙여서 .’ 이렇게 쓰면 전치행렬, 그리고 문자열 앞뒤에 붙이면 그냥 문자열. 물론 .도 여러가지 용도로 쓴다. 소숫점으로도 쓰고 프로퍼티 접근에도 쓰고 *와 .*를 구분하는 용도로도 쓴다.

이미지: 텍스트

함수를 function y=my_func_name(x)로 정의하는데 return이 있는게 아니라 끝부분 쯤에서 y=0.5 이런 식으로 값을 넘겨준다. 물론 값 여러개를 한번에 넘겨주는걸 “최대한 쉽게” 구현하기 위해서 그랬다는 건 알겠는데, 함수가 언제 “끝나야”하는건지 알기가 어렵다.

연산자 ./의 양쪽에 둘 다 공백이 있느냐, 둘 다 없느냐, 한쪽만 있느냐에 따라 의미가 달라진다. 모호성이 없도록 하려면 그걸 사용자에게 알아서 쓰라고 할게 아니라 문법 수준에서 에러가 나도록 해야지….이걸….

이미지: 텍스트

save랑 saveas는 용도와 기능이 조금 다르긴 하지만 둘 다 데이터를 파일에 저장하는 명령어이다. save는 파일 이름을 먼저 입력하고 변수를 그 다음에 지정한다. saveas는 변수를 먼저 입력하고 파일이름을 나중에 지정한다. 보통은, 이런 순서 정도는 통일해두지 않나…?

자동 대체 텍스트를 사용할 수 없습니다.

댓글 남기기

이메일은 공개되지 않습니다.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Proudly powered by WordPress | Theme: Baskerville 2 by Anders Noren.

Up ↑

%d 블로거가 이것을 좋아합니다: