규모가 작지 않은 프로젝트를 하다보면, 필히 여러 개의 m파일을 사용하게 됩니다. 용이한 관리를 위해 기능별로 함수 파일을 따로 만들기도 하고, 평소에 자주 쓰는 기능을 함수로 만들어 둔 것을 가져와서 쓰기도 합니다. 문제는 이 프로젝트를 배포하거나 통채로 다른 pc로 옮겨야 할 때 발생합니다. Dependency가 있는 파일들만 골라서 압축할 수 있다면 프로젝트를 배포하기 굉장히 편해질 것입니다. Program dependency를 확인하는 기능은 이미 매트랩에 있습니다. kr.mathworks.com/help/matlab/matlab_prog/identify-dependencies.html 여기에 압축파일을 만드는 zip 함수만 이용하면, 아래와 같이 간단하게 코드를 짤 수 있습니다. 1 2 [fLi..
figure나 axes의 colormap은 보통 64x3 행렬 형태로 들어있습니다. 실제로 어떤 colormap이 적용됐는지 알기 어렵죠. 그래서 첨부와 같이 만들어보았습니다. handle을 입력으로 넣으면 어떤 colormap인지 string으로 반환해줍니다. 2019년 12월 22일 현재 18개의 colormap이 있습니다. 이 18개에 해당되지 않으면 "unknown"을 반환합니다. 자유롭게 사용하시되, developer 정보는 남겨주세요. 게으른맽랩
원문: https://techbeacon.com/app-dev-testing/35-programming-habits-make-your-code-smell 당신의 코드를 구리게 만드는 35가지 "나쁜 버릇" 나쁜 버릇은 고치기 힘들다. 그게 나쁜 버릇임을 알지 못하면 더욱 고치기 힘들다. 나쁜 버릇임을 알면서도 고치지 않는 것이 최악이다. 하지만 적어도 고칠 마음은 있으니 이걸 읽고 있을 것이다. 프로그래머로 일하면서 나쁜 습관들을 봐왔다. 코딩 문제도 있었지만 팀워크 문제도 있었다. 나 또한 나쁜 습관이 있었고 이에 대한 책임이 있다. 나쁜 프로그래밍 습관 35가지를 아래와 같이 4개의 카테고리로 – 코드 관리, 팀워크, 코드 작성, 테스트 및 유지관리 - 나누어 보았다. 코드 관리 “나중에 고칠게요.”..
요즘 이딴 식을 다루다 보니 matlab에 제대로 타이핑을 했는지 한참을 보게 됩니다. 안 그래도 하루하루 눈이 침침해지는데 말이죠... (잠깐 눈물 좀 닦고...) Matlab의 latex 기능을 활용해서 수식을 latex form으로 확인할 수 있는 코드를 작성해보았습니다. 위 파일을 적당한 곳에 두고 아래처럼 작성하면 아래처럼 그림이 뜹니다. 간단한 도움말은 파일 내에 적어두었습니다. 배포는 자유이지만 작성자명은 지우지 말아주세요. - 게으른 맽랩 ==== 궁극적으로는 아래와 같은 더러운 식도 한번에 보는 게 목표입니다만, 일단 식이 길어서 창 크기 또는 fontsize를 조절해야 하고, greek character를 어떻게 표기할 지 문제가 남아있습니다. 방법을 연구해보겠습니다. 해결책을 찾으면 ..
제가 활동(?) 중인 카톡 오픈방 "MATLAB 공부"에서 아래와 같은 주제로 설문조사를 시행했습니다. "내가 선호하는 매트랩 공부법은?" 무려 34명이 참여해주셨고, 결과는 아래와 같았습니다. 나름대로 분석을 해보자면... 1. 생각보다 동영상 및 인강이 인기가 없었습니다. 이유가 궁금하네요. 필요한 부분만 골라볼 수 없어서? 한번 보는 데 오래 걸려서? 무슨 말인지 이해할 수 없어서? 좋은 영상이 없어서? 2. 일단 쓰면서 모르면 help 검색이 많았습니다. 하지만 그와 동시에 help를 봐도 모르겠다는 분들이 많았습니다. 제가 봐도 매트랩의 help는 교육자료라기보단 일종의 reference 성격이 짙습니다. 게다가 번역도 그다지 만족스럽지 못하더군요. 좀 더 친절한 help를 만드는 것도 재밌겠다..
네, 있습니다. 바로 end라는 키워드입니다. Code 1.sub_a = a(3:end); % a의 3번째~끝까지의 element를 sub_a에 저장합니다. sub_b = b(3:4,2:end); % b의 3~4번째 행, 2번째~마지막 열에 해당하는 행렬을 sub_b에 저장합니다. 당연히 b가 1차원 행렬일 경우 Code 1의 두 번째 줄은 에러가 뜹니다. 위 코드는 Code 2처럼 쓸 수도 있지만, 여러모로 end를 쓰는 것에 비해 장점이 없습니다. Code 2. sub_a = a(3:length(a)); sub_b = b(3:4,2:size(b,2)); end를 쓸 수 있으면 아래와 같은 활용이 가능합니다. Code 3. Y = X(2:2:end-1); % X의 짝수번 째 element를 Y에 저장,..
있습니다. ...(점 3개)을 이용하면 됩니다. plot(x,y,'--gs','LineWidth',2,'MarkerSize',10,'MarkerEdgeColor','b','MarkerFaceColor',[0.5,0.5,0.5]) plot(x,y,'--gs', ... 'LineWidth',2, ... 'MarkerSize',10, ... 'MarkerEdgeColor','b', ... 'MarkerFaceColor',[0.5,0.5,0.5]) cube = struct('width',10,'height',20','depth',30); cube = struct('width' ,10, ... 'height',20, ... 'depth' ,30 ); 같은 코드이지만 위보다 아래가 더 눈에 잘 들어오는 걸 볼 수 ..
[ 빠르게 답만 원하시는 분들을 위해 ] '는 전치행렬 transpose matrix를 만들 때 복소수를 켤레복소수 complex conjugate로 만듭니다. 그냥 대칭이동만 하려면 ' 대신 .'을 쓰면 됩니다. a' % a의 complex conjugate transposea.' % a의 non-conjugate transpose ==== [ 딱히 몰라도 되지만 알아두면 아는 척 하기 좋은 쓸데없는 추가설명 ] 1) complex conjugate transpose를 만드는 방법은 두 가지가 있습니다. 둘 모두 결과는 동일하지만 가독성의 차이는 있습니다. 본인 스타일에 맞게 쓰시면 됩니다. a' % 짧지만 사람에 따라 가독성이 떨어질 수 있음 ctranspose(a) % 사람에 따라 가독성이 올라갈 ..