꼬앵이 체중관리표를 보다가 문득 이런 생각이 들었다. 매일 똑같이 먹고 똑같이 움직이면 체중은 수렴할까? 그래서 아래와 같은 문제를 만들어보았다. 철수네 강아지 해피가 살이 너무 쪄서 체중관리에 들어가기로 했다. • 현재 해피 체중은 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개로 바뀌기 때문이다. 다시 물어..
어디서 줏었는지 기억이 나지 않는다. 아마 고등~대학 물리학, 수학 단톡방이 아니었을까 싶다. 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,..
이 글은 정규식 삽질의 기록이며, 나중에 내가 같은 패턴을 쓸 일이 있을 때 찾아보기 위함이다. (1탄 보러가기) 0. 요약 • 어떤 텍스트가 '숫자4개_숫자4개' 꼴인지 보려면?~isempty(regexp(str, '^\d{4}_\d{4}$', 'once'))• 여기서\d는 숫자 하나\d{4}는 숫자 4개캐럿은 문자열이 그걸로 시작하는지 확인딸라는 문자열리 그걸로 끝나는지 확인이다. • isempty를 써야 하는 이유는? regexp의 결과로 빈 배열이 나올 수 있기 때문 1. 하려고 했던 것 • 파일명 쓰기 귀찮아서 아무 파일명으로 저장한 이미지 파일들을 일괄로 변경하고 싶었다.• 예를 들어 2024년 6월 1일에 수정한 파일이라면 '2024_0601.png'로 바꾸고 싶다.• 챗gpt가 이런 건 ..
MATLAB R2024a Prerelease가 나왔습니다. Release note를 보고 자주 또는 종종 사용할 것 같은 것만 몇 가지 추려봤습니다. 1. 자유로워진 로컬 함수의 위치 로컬 함수를 코드 중간에서 정의할 수 있게 됩니다. 다만 if, for와 같은 conditional context 내에서는 정의할 수 없습니다. 2. Check spelling 기능 툴스트립-VIEW의 오른쪽 끝에 있습니다. 라이브 에디터의 텍스트, M-파일의 주석에서 파란색 밑줄로 보여줍니다. 3. createArray 함수 createArray를 이용하여 특정 클래스의 행렬을 만들 수 있습니다. 예전에는 클래스마다 초기화된 행렬을 만드는 방법이 달랐습니다. 4. arguments 블록 자동완성 이 상태에서 아래의 sug..
예전에 한번 올린 글입니다만, 이번에는 애니메이션을 매트랩으로 만들어보았습니다. 아래는 매트랩 코드이며, 깃헙에도 올려두었습니다. 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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 1..
매트랩 그래픽 객체의 ButtonDownFcn과 Figure 객체의 SelectionType을 이용하면 재밌는 걸 할 수 있습니다. 본 글의 목표는 아래의 코드를 구현하는 것입니다. - Line 또는 FunctionLine을 클릭하여 linestyle을 바꿈 - 좌클릭은 dashed (--) - 우클릭은 dotted (:) - 중클릭은 dash-dotted(-.) - 더블클릭은 solid line(-) - Figure에 만들어지는 모든 Line과 FunctionLine에 적용 (새로 추가되는 객체에도 적용) 1. ButtonDownFcn 우선 클릭했을 때 어떤 동작이 일어나도록 만들어야 합니다. 이와 같이 어떤 이벤트에 의해서 실행되는 함수를 일반적으로 '콜백(callback) 함수'라고 부릅니다. 매트..
티스토리에 매트랩 코드를 올리는 방법을 조사해봤습니다. 결론부터 얘기하자면, gist와 colorscripter가 제일 깔끔하다고 생각됩니다. 좀 안 이뻐도 간단하게 올리려면 티스토리 자체 코드블럭 기능을 쓰면됩니다. html나 css를 알아야 쓸 수 있는 방법들은 배제했습니다. 왜냐면 제가 할 줄 모르거든요(...). 1. 캡쳐 or 파일 올리기 방법: 그냥 캡쳐해서 붙여넣는다. 또는 파일 첨부한다. 장점: 제일 쉽다. 파일로 받을 수도 있다. 단점: 이럴거면 이 글을 쓸 이유가 없다(...). 2. 티스토리 자체 코드블럭 기능 % 10줄짜리 코드에 최대한 다양한 키워드를 담으려고 고민한 코드 while true name = input('Type your nickname: ', 's'); if ~ise..