어느 날 퇴근길 생각의 흐름 어? 지금 나오는 곡 뭐지? 템포가 딱 좋은데? 박자 맞춰서 걷기 딱 좋은 템포잖아? 이거 bpm이 얼마쯤 되는거지? Stayin' alive보다 빠르니까 100보다는 확실히 높을거 같은데?110쯤 되려나? 어떻게 측정하지? 아이폰에서 bpm 측정하는 앱이 있나?뭔가 있네. 앱 이름이 bpm이네. ㅋㅋ 오호. 109 bpm이네.이거랑 비슷한 bpm의 곡들을 모아서 플리를 만들까?뭐가 있지? 일단 타샤니의 경고가 비슷할 것 같고.Emotional oranges 노래들도 대충 비슷할거 같은데?그러고보니 예전에 100 bpm 근처의 곡들을 모아둔 적이 있는데, 그거랑 합쳐야겠다.일할 때 듣는 플리 이름이 work song이니, 이건 walk song으로 하면 되겠지? ㅋㅋ근데 이 ..
이 글은 정규식 삽질의 기록이며, 나중에 내가 같은 패턴을 쓸 일이 있을 때 찾아보기 위함이다. 애증의 정규식 1탄애증의 정규식 2탄애증의 정규식 3탄 과제 1. 마크다운 헤딩이 2단계일 때에도 잘 변환해야 한다.- Heading level 1은 숫자가 안 들어가므로 추가해줘야 한다.- 그 이하의 level은 숫자가 들어가므로 그대로 두어도 된다. 예시)>[간단한 출력: disp]>[포맷팅 출력: fprintf]>>[2.1 formatSpec]>>[2.2 변환 문자]>>[2.3 이스케이프 문자]>[format으로 출력 표시 형식 지정] 를 아래처럼 바꿔야 한다. >[1. 간단한 출력: disp]>[2. 포맷팅 출력: fprintf]>>[2.1 formatSpec]>>[2.2 변환 문자]>>[2.3 이스..
이 글은 정규식 삽질의 기록이며, 나중에 내가 같은 패턴을 쓸 일이 있을 때 찾아보기 위함이다. 애증의 정규식 1탄애증의 정규식 2탄 게으른 매트랩 인덱싱 파트를 쓰던 도중, 애증의 정규식 1탄에서 걱정했던 일이 발생했다. 마크다운에서 헤딩 텍스트에 한글이 들어가면 링크에서는 없애야 한다. 정확히는, 1. 숫자와 알파벳, 즉 alphanumeric는 그대로 남긴다.2. 그 외의 문자는, alphanumeric 사이에 있는 것들은 묶어서 하이픈 하나로 바꾼다.3. Trailing 하이픈은 모두 없애버린다. 이게 말로 하면 좀 어려운데, 쉽게 말해 아래처럼 바꾼다. 123가나다abc → 123-abc1가2나3다 → 1-2-3가나다a123bc → a123bc 즉, 남길 문자 사이에 non-alphanumer..
매트랩으로 시각화 예제를 만들면서 이미지를 회전시켜야 할 일이 있었다. 하나의 Axes 위에 다른 객체는 그대로 놔두고 Image object만 회전시켜야 했는데, 정보 손실이 없어야 해서 imrotate는 사용하기 어려운 상황이었다. 찾아보니 rotate라는 함수가 Image object도 회전시킨다고 나왔다. 그런데 막상 해보니까 안되는 거다. 그래서 어쩔 수 없이 Axes를 2개 만들어서 Image를 올린 Axes만 회전시켰다. 해당 이슈를 매트랩 단톡방에 공유했고, 도움말에 오류가 있는 것으로 판명이 났다. 정식으로 이슈 등록되었고, Answers에 Support team의 글도 올라왔다. 요컨대 Image object에는 ZData가 없기 때문에 안된다고 한다. 지금은 rotate 함수의 설명에..
꼬앵이 체중관리표를 보다가 문득 이런 생각이 들었다. 매일 똑같이 먹고 똑같이 움직이면 체중은 수렴할까? 그래서 아래와 같은 문제를 만들어보았다. 철수네 강아지 해피가 살이 너무 쪄서 체중관리에 들어가기로 했다. • 현재 해피 체중은 20 kg이다.• 사료는 1 g 당 3 kcal의 열량을 갖는다.• 현재 체중 기준, 먹은 사료 중 50%는 똥으로 나오고, 나머지 50%는 에너지로 전환 및 흡수된다. - 사료의 에너지 전환율은 체중이 1 kg 감소할 때마다 1%씩 증가한다. 예를 들어, - 20 kg일 때는 먹은 사료 중 50%가 에너지로 전환되지만, - 19 kg일 때는 먹은 사료 중 51%가 에너지로 전환된다.• 운동은 매일 1시간을 하는데, 현재 체중 기준, 300 kcal의 에너지를 ..
콰인은 자기 자신의 코드를 출력하는 코드이다. 즉, 실행 결과가 자신의 코드와 동일해야 한다. 생각보다 간단하지 않다. 무지성으로 아래처럼 짜면 disp('disp') 출력은 disp만 되므로, 다시 아래처럼 고쳐야 하고, disp('disp(''disp'')') 이렇게 해봤자 다시 코드가 늘어났으므로 다시 코드를 늘려야 한다. 아래는 chatGPT가 알려준 매트랩 콰인이다. quine = 'fprintf(''%s%s%s'', char(10), ''quine = '';, quine, char(10), quine);';fprintf('%s%s%s', char(10), 'quine = ', quine, char(10), quine); 그런데 틀렸다. 따옴표 2개는 따옴표 1개로 바뀌기 때문이다. 다시 물어..
위 3차원 그래프를 보자. 매트랩의 peaks를 이용하면 간단히 그릴 수 있는 곡면이다. 점 $A$에서 움직일 수 있는 방향 중 경사가 가장 가파른 방향은 아래와 같이 주어진다. $$\nabla f = \left[ \frac{\partial f(x,y)}{\partial x}, \frac{\partial f(x,y)}{\partial y} \right]^T$$ 좋은 것에는 이름이 있다. $\nabla f$는 $f$의 gradient라고 부른다. 이름을 봐도 확실히 경사와 연관은 있어보인다. 그런데 왜 하필이면 각 방향 편미분을 성분으로 갖는 벡터가 가장 가파른 방향이 될까? 다루기 좋은 "이쁜" 함수라면 한 점을 계속 확대하다보면 언젠가 평면이 된다. 확대해도 평면이 되지 않는 "못생긴" 함수 또는 점..
답부터 보여주기d = dir('./**');d = d(~ismember({d.name}, {'.', '..'}));d = d([d.isdir] == 0 & endsWith({d.name}, '.txt'));for i = 1:length(d) ifile = fullfile(d(i).folder, d(i).name); fid = fopen(ifile); s = fscanf(fid, '%c'); fclose(fid); if contains(s, 'pattern') keyboard endend 나는 메모할 것이 있으면 일단 텍스트 파일에 적어둔다. 그리고 정기적으로 텍스트 파일들을 정리한다. 지울 것은 지우고, 합칠 것은 합치고, 당장 안 볼 것 같은 파일은 저장하..
어디서 줏었는지 기억이 나지 않는다. 아마 고등~대학 물리학, 수학 단톡방이 아니었을까 싶다. 50원짜리 5개를 모아서 250원을 만드는 것인데, A, B, C, D가 갖고 있는 동전 개수가 다르다. 동전을 내지 않는 사람이 있어도 된다. 따라서• A가 5개 내도 되고• A가 3개, B가 2개 내도 되고• A가 1개, B가 1개, C가 1개, D가 2개 내도 된다. 결국 이 문제는 아래를 묻는 것이다. "AAAAAABBBBCCCDD"에서 문자 5개를 고르는 경우의 수 ${}_{15}C_5$는 아니다. 중복된 문자들이 있기 때문이다. 생각하기 귀찮았던 나는(...) 이딴 코드를 짜고 있었다. coins = 'ABCD';t = table2array(combinations(coins, coins, coins,..