본문 바로가기 메뉴 바로가기

게으른맽랩 lazy matlab

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

게으른맽랩 lazy matlab

검색하기 폼
  • 분류 전체보기 (233)
    • matlab (68)
    • python (29)
    • 혼공컴운 (16)
    • 혼공머신 (11)
    • mathe (47)
    • something else (41)
    • mechanics (6)
    • 읽는 인간 (12)
    • shelf (3)
    • project Euler (0)
  • 방명록

matlab (68)
eval을 피하는 방법

eval은 마법의 명령어입니다. 아무리 복잡한 코드도 eval로 모두 생성할 수 있습니다. 그래서인지 많은 분들이 아직도 eval을 사용합니다. 특히 변수명을 A1, A2, A3, …처럼 생성하기 위해 eval을 자주 사용합니다. 이러한 연속된 이름의 변수 생성은 eval 없이 할 수 없기 때문이죠. 게다가 크기가 일정하지 않은 변수들은 하나의 numeric array에 담을 수 없으므로 eval을 이용하는 경우가 많습니다. 하지만 eval은 양날의 검입니다. global과 함께 대표적으로 지양해야 할 것 top2입니다. 괜히 eval을 evil이라고 하는게 아닙니다. 왜 eval을 쓰지 말아야 하는지, 어떤 대안이 있는지 살펴보겠습니다. eval의 문제점 1. 실행속도가 느려질 수 있습니다. 매트랩은 ..

matlab 2022. 6. 2. 14:10
구조체에서 필드의 특정값을 갖는 인덱스 뽑아내기

흥미로운 질문을 받았습니다. 아래와 같은 구조체에서 파일명(필드명 name)이 'main.m'인 인덱스를 뽑아내려면 어떻게 할까요? 당연히 for 문을 돌리면 해결되긴 합니다만, 한줄컷으로 끝낼 방법이 있습니다. 1) {files.name}과 같은 표현식을 이용하면 files의 모든 .name 값을 하나의 셀배열에 담을 수 있습니다. 2) cellfun은 셀배열의 모든 원소에 동일한 함수를 적용하여, 그 결과를 같은 크기의 배열로 반환합니다. 3) cellfun에 쓸 함수가 이미 존재하는 함수가 아니라면 함수를 만들어서 쓰면 됩니다. 파일을 만들기 귀찮다면? 우리에겐 익명함수가 있습니다. 아이디어를 주신 MATLAB 공부방 이*규님께 감사말씀 드립니다. - 게으른 맽랩

matlab 2020. 12. 23. 18:05
매트랩에서의 array unpacking

0. 들어가며 지난 글에서 cell array의 특별한 활용법을 몇 가지 말씀드렸습니다. 이번 글에서는 어떻게 그게 가능한지, 그리고 그 뒤에 숨어있는 매트랩의 흥미로운 문법에 대해 말씀드리겠습니다. 놀랄 준비 되셨나요? 그럼 시작하겠습니다. 1. deal 함수 활용하기 잘 알려지지 않은 함수가 하나 있습니다. deal 함수를 이용하면 아래와 같이 우변의 여러 값을 좌변의 여러 변수에 하나씩 집어넣을 수 있습니다. 원래는 여러 줄에 걸쳐 변수에 값을 할당해야 하지만, deal을 이용하면 한줄에 끝낼 수 있습니다. 마치 카드를 딜(deal) 하듯 변수에 값이 하나씩 들어가는 걸 볼 수 있습니다. 이 방법은 함수 내부에서 varargin을 여러 변수로 쪼갤 때 특히 강점을 발휘합니다. 또한 deal은 여러 ..

matlab 2020. 7. 19. 01:49
cell array의 특이한 동작

cell array를 활용하는 특별한 방법 두 가지를 소개합니다. 1) structure array의 특정 field 값을 모두 가져오고 싶을 때 현재 폴더 내에 있는 모든 tif 파일의 목록은 아래처럼 불러올 수 있습니다. files는 크기가 5x1인 structure array이고 name, folder... 등 6개의 field를 가지고 있습니다. 이 array에서 모든 원소들의 name을 어떻게 가져올까요? files.name을 하면... 이렇게 각 원소의 name을 따로따로 다섯 번 가져온 꼴이 됩니다. 따라서 ans에는 마지막 원소의 name만 남습니다. 그럼 변수에 넣어볼까요? 변수에 넣어보려고 했더니 이렇게 첫번째 원소의 name만 가져옵니다. 물론 이 문제는 for문을 쓰면 쉽게 해결되지..

matlab 2020. 7. 14. 01:51
for문을 이해하는 새로운 방식

for문은 보통 다음의 Code 1과 같은 방법으로 많이 사용됩니다. % Code 1 % % For a given vector, generate % a new vector whose element is % 1 when the element of the given % vector at the same position is % greater than 0.5, otherwise 0. % % 벡터 a가 주어졌을 때, a의 각 요소가 % 0.5보다 크면 1, 그렇지 않으면 0인, % a와 크기가 같은 새 벡터를 생성하라. a = rand(1,10); b = zeros(size(a)); for i = 1:length(a) if a(i) > 0.5 b(i) = 1; end end 즉, 벡터 a의 길이만큼 반복문을 수..

matlab 2020. 6. 28. 16:16
실수로 에디터 창을 닫았나요? 당황하지 않으셔도 됩니다.

저는 에디터에 파일을 많이 띄워두는 편입니다. 아직 작업이 끝나지 않은 파일은 당장 쓰지 않더라도 띄워놔야 나중에 작업을 이어갈 수 있기 때문인데요. 가끔 실수로 에디터 창을 닫을 때가 있습니다. 요즘 웹브라우저는 마지막 세션을 그대로 복구할 수 있지만, 매트랩의 에디터는 그런 기능이 없습니다. 결국 기억을 더듬어서 파일을 하나씩 여는 수밖에 없습니다. 이런 사태를 방지하려면 사용자가 조심해서 써야 합니다만... 다행히 에디터를 복구할 방법이 있습니다. 매트랩이 설정파일들을 따로 모아두는 폴더가 있는데, 그 폴더에 xml 파일의 형태로 마지막 세션과 현재 세션의 m파일들이 담겨있습니다. 이 파일 정보만 꺼내서 복구할 수 있습니다. 아래는 그 복구코드입니다. (원본: kr.mathworks.com/matl..

matlab 2020. 6. 17. 01:24
로또 프로그램

로또 프로그램을 짜봤습니다. 6개 숫자를 입력으로 넣으면 난수 6개를 생성해서 몇개나 맞췄는지 출력해줍니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 function n = lotto(mypick) mypick = sort(mypick); if sum(diff(mypick)==0)>0 warning('너는 첫판부터 장난질이냐?') n = -1; return end theirpick = sort(randperm(45,6)); fprintf('Your picks are: '); fprintf('%d\t', mypick); fprintf(newline) fprintf('They picked as: '); fprintf('%d\t',t..

matlab 2020. 6. 15. 01:53
관련 m파일들을 모아서 압축파일을 만들어주는 depfuns2zip

규모가 작지 않은 프로젝트를 하다보면, 필히 여러 개의 m파일을 사용하게 됩니다. 용이한 관리를 위해 기능별로 함수 파일을 따로 만들기도 하고, 평소에 자주 쓰는 기능을 함수로 만들어 둔 것을 가져와서 쓰기도 합니다. 문제는 이 프로젝트를 배포하거나 통채로 다른 pc로 옮겨야 할 때 발생합니다. Dependency가 있는 파일들만 골라서 압축할 수 있다면 프로젝트를 배포하기 굉장히 편해질 것입니다. Program dependency를 확인하는 기능은 이미 매트랩에 있습니다. kr.mathworks.com/help/matlab/matlab_prog/identify-dependencies.html 여기에 압축파일을 만드는 zip 함수만 이용하면, 아래와 같이 간단하게 코드를 짤 수 있습니다. 1 2 [fLi..

matlab 2020. 6. 14. 04:33
colormap을 string으로 가져올 수 있습니다.

figure나 axes의 colormap은 보통 64x3 행렬 형태로 들어있습니다. 실제로 어떤 colormap이 적용됐는지 알기 어렵죠. 그래서 첨부와 같이 만들어보았습니다. handle을 입력으로 넣으면 어떤 colormap인지 string으로 반환해줍니다. 2019년 12월 22일 현재 18개의 colormap이 있습니다. 이 18개에 해당되지 않으면 "unknown"을 반환합니다. 자유롭게 사용하시되, developer 정보는 남겨주세요. 게으른맽랩

matlab 2019. 12. 22. 23:02
figure dock, undock

자세한 내용은 아래에... ...라는 글을 쓴 적이 있으나, 키보드 단축키가 훨씬 편리합니다. 단축키 쓰세요 여러분~ dock: ctrl + shift + d undock: ctrl + shift + u - 게으른 맽랩

matlab 2019. 12. 2. 23:12
이전 1 ··· 3 4 5 6 7 다음
이전 다음
공지사항
  • 블로그 엽니다. Welcome to the b⋯
최근에 올라온 글
TAG
  • 인덱스
  • 해석학
  • 오피스
  • 컴퓨터구조
  • 한빛미디어
  • 수학
  • 단축키
  • 혼공머신
  • bar chart race
  • 프로그래밍
  • 수식
  • Python
  • 정규식
  • statics
  • normal subgroup
  • mechanics
  • 혼공학습단
  • matlab
  • group theory
  • 파이썬
  • 함수
  • 반복문
  • 혼공
  • 혼공컴운
  • 매트랩
  • regexp
  • Linear algebra
  • 수학의 즐거움
  • 운영체제
  • 족장님사랑해요
more
글 보관함
링크
  • tutorialspoint/matlab
  • mathfreeon
  • soen.kr
  • matlab GUI tutorial
  • Kobong's playground
최근에 달린 댓글

Blog is powered by Tistory / Designed by Tistory

티스토리툴바