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

게으른맽랩 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 (43)
구조체에서 필드의 특정값을 갖는 인덱스 뽑아내기

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

matlab 2020. 12. 23. 18:05
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
figure dock, undock

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

matlab 2019. 12. 2. 23:12
Matlab 수식을 latex 형식으로 바꿔주는 코드입니다.

요즘 이딴 식을 다루다 보니 matlab에 제대로 타이핑을 했는지 한참을 보게 됩니다. 안 그래도 하루하루 눈이 침침해지는데 말이죠... (잠깐 눈물 좀 닦고...) Matlab의 latex 기능을 활용해서 수식을 latex form으로 확인할 수 있는 코드를 작성해보았습니다. 위 파일을 적당한 곳에 두고 아래처럼 작성하면 아래처럼 그림이 뜹니다. 간단한 도움말은 파일 내에 적어두었습니다. 배포는 자유이지만 작성자명은 지우지 말아주세요. - 게으른 맽랩 ==== 궁극적으로는 아래와 같은 더러운 식도 한번에 보는 게 목표입니다만, 일단 식이 길어서 창 크기 또는 fontsize를 조절해야 하고, greek character를 어떻게 표기할 지 문제가 남아있습니다. 방법을 연구해보겠습니다. 해결책을 찾으면 ..

matlab 2018. 12. 27. 20:16
행렬의 끝을 가리키는 키워드가 있나요? + 행렬의 index에 대하여

네, 있습니다. 바로 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에 저장,..

matlab 2018. 12. 4. 17:23
한 줄이 너무 길어지는데 다음 줄로 넘길 수 있나요?

있습니다. ...(점 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 ); 같은 코드이지만 위보다 아래가 더 눈에 잘 들어오는 걸 볼 수 ..

matlab 2018. 10. 25. 17:07
전치행렬이 켤레복소수로 나올 땐?

[ 빠르게 답만 원하시는 분들을 위해 ] '는 전치행렬 transpose matrix를 만들 때 복소수를 켤레복소수 complex conjugate로 만듭니다. 그냥 대칭이동만 하려면 ' 대신 .'을 쓰면 됩니다. a' % a의 complex conjugate transposea.' % a의 non-conjugate transpose ==== [ 딱히 몰라도 되지만 알아두면 아는 척 하기 좋은 쓸데없는 추가설명 ] 1) complex conjugate transpose를 만드는 방법은 두 가지가 있습니다. 둘 모두 결과는 동일하지만 가독성의 차이는 있습니다. 본인 스타일에 맞게 쓰시면 됩니다. a' % 짧지만 사람에 따라 가독성이 떨어질 수 있음 ctranspose(a) % 사람에 따라 가독성이 올라갈 ..

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

Blog is powered by Tistory / Designed by Tistory

티스토리툴바