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..
깃헙 페이지 매트랩에서 기본으로 제공하는 방법은 symbolic을 활용하는 것이다. >> A = sym('A', [2, 4]) A = [A1_1, A1_2, A1_3, A1_4] [A2_1, A2_2, A2_3, A2_4] 숫자로 구성된 행렬을 만들고 싶다면, 함수를 만들어서 써야 한다. 아래는 함수 코드와 실행 결과이다. cell unpacking이 활용되었다. function arr = idx_mat(varargin) arr_cell = cell(nargin, 1); idx = cell(nargin, 1); for i=1:nargin idx{i} = 1:varargin{i}; end [arr_cell{:}] = ndgrid(idx{:}); arr = zeros(varargin{:}); for i=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..
확인해보기로 했다. 왜냐하면 그냥 균일한 보라색으로 보였거든. clear close all clc img = imread('수분부족.jpg'); figure, imshow(img) img_single = rgb2gray(imcrop); figure, subplot(1,2,1), imshow(img_single, []) subplot(1,2,2), histogram(img_single(:)) 감기에 해당되는 원 내부를 선택하면 아래와 같은 결과를 얻을 수 있다. 숫자가 명확히 보이고, 히스토그램에도 전경과 배경에 해당되는 두 peak이 보인다. 나머지도 해봤다.
세줄요약 증상: matplotlib.pyplot.bar()로 막대 그래프를 그릴 때 막대가 사라지거나 막대 사이의 틈이 없어지는 현상이 있음 원인: bar()는 막대의 위치를 1픽셀 단위로만 계산하는데, 막대 또는 틈이 너무 얇으면 무시하고 그리지 않음 해결책: bar()의 파라미터 중 width를 조절하고, 필요에 따라 figsize를 바꾸거나 edgecolor를 설정하거나 Figure 창의 크기를 조절 일러두기 본 글의 코드 중 캡쳐한 것은 코랩, 코드 블록은 vscode 또는 매트랩에서 실행한 코드입니다. 코드는 모두 여기에서 보실 수 있습니다. 감사의 글 본 글의 아이디어를 주신 페가님께 감사 말씀 드립니다. 이상한 막대 그래프 matplotlib의 bar()를 이용하여 간단히 막대 그래프를 그려..
매트랩의 레이아웃을 command를 이용하여 저장/설정할 수 있습니다. 이곳을 참고했습니다. 레이아웃 저장하기 우선 레이아웃을 원하는 모양으로 만듭니다. 그리고 아래 코드를 이용하여 MLDesktop 핸들을 가져옵니다. desktop = com.mathworks.mde.desk.MLDesktop.getInstance; MLDesktop의 saveLayout 메서드를 이용하면 레이아웃이 저장됩니다. 메서드의 입력으로 레이아웃 이름을 적습니다. desktop.saveLayout('mylayout') 레이아웃이 만들어졌는지 확인할 수 있습니다. 메뉴의 홈 탭의 레이아웃에 mylayout이 생겼습니다. 참고로 레이아웃은 C:\Users\\AppData\Roaming\MathWorks\MATLAB\에 xml 파일..
매트랩의 불편한 점이 하나 있습니다. 폰트를 한번에 한 종류밖에 쓰지 못합니다. 그래서 한글이 포함되지 않은 폰트를 쓰면 한글이 제대로 표시되지 않습니다. 매트랩 설치 후 기본 폰트는 monospaced입니다. monospaced에는 한글이 포함되어 있습니다. 음. 못생겼습니다. 이걸 제가 사랑하는 Consolas[1]로 바꾸면 아래처럼 돼버립니다. 제대로 된 글자는 다 깨지면서 원래는 없는 글자인 “맽”은 제대로 표시되는게 아이러니하군요. 이 문제는 매트랩의 데스크탑 언어를 한글로 해도 똑같이 발생합니다. 원래는 아래처럼 나와야 할 것이 폰트를 Consolas로 바꾸면 아래처럼 한글이 깨져버리는 어이없는 현상이 발생합니다. 표시 언어와 환경 언어의 불일치라니… 꽤 오래된[2] 문제인[3] 것으로 알고 ..