본문 바로가기
반응형

MATLAB 코딩74

[matlab 공부하자] 31.행렬에서 특정 행 또는 열을 제거하기 31.행렬에서 특정 행 또는 열을 제거하기 A=[1 2 3 ;4 5 6;7 8 9] 에서 1행을 제거해보겠습니다. >> A=[1 2 3 ;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9 >> A(1,:)=[] A = 4 5 6 7 8 9 이번에는 2열을 제거해보겠습니다. >> A(:,2)=[] A = 4 6 7 9 2019. 7. 3.
[matlab 공부하자] 30.format bank(소수 둘째 자리까지 표시), format rat (분수식 표현) matlab 공부하자 30.format bank(소수 둘째 자리까지 표시), format rat (분수식 표현) matlab 공부하자 format bank(소수 둘째 자리까지 표시) format rat (분수식 표현) 2019. 7. 3.
[matlab 공부하자] 29.원소들의 곱을 반환 (prod 함수) 29.원소들의 곱을 반환 (prod 함수) 원소들의 곱을 반환하는 함수입니다.벡터의 경우는 전체곱을 반환해주고 행렬의 경우는 조금 달라요. 먼저 벡터의 곱을 봅시다. >> a=[1 2 3] a = 1 2 3 >> prod(a) ans = 6 행렬의 경우에는 각 열의 곱을 반환해줍니다. >> b=[1 2 3;4 5 6;7 8 9] b = 1 2 3 4 5 6 7 8 9 >> prod(b) ans = 28 80 162 2019. 7. 3.
[matlab 공부하자] 28.행렬의 원소의 개수를 반환하는 함수 (numel 함수) 28.행렬의 원소의 개수를 반환하는 함수 (numel 함수) 행렬의 원소의 개수를 반환해주는 함수가 있습니다. numel 함수입니다. 한번 사용해보겠습니다. >> a=[1 2 3; 4 5 6; 7 8 9;10 11 12] a = 1 2 3 4 5 6 7 8 9 10 11 12 >> numel(a) ans = 12 2019. 7. 3.
[matlab 공부하자] 27.matlab 어디에 쓰나요? 27.matlab 어디에 쓰나요? 1. 수학과 관련된 계산2. 알고리즘 개발 (Text coding, Graphical coding)3. 상황 모델링과 data 분석4. 여러가지 과학과 공학적인 그래픽 표현5. GUI(Graphical User Interface)를 채택한 애플리케이션 개발6. 임의의 PC와 사용자가 개발한 Hardware 사이의 Link 제공 2019. 7. 3.
[matlab 공부하자] 26.함수의 부정적분 (int 함수) 26.함수의 부정적분 (int 함수) 간단한 함수를 선언하고 부정적분을 해봅시다. 이전에 배운 symbolic 자료형을 사용합니다. 먼저 x,y변수를 symbolic으로 선언합니다. syms x y 적분하고 싶은 함수를 선언합니다. y=x^2+3; 적분은 영어로 integral이죠? >> Y=int(y) Y = (x*(x^2 + 9))/3 이렇게 간단하게 부정적분이 계산됩니다. 엄밀히 말히면 이 적분을 한 것입니다. 2019. 7. 3.
[matlab 공부하자] 25. symbolic data type 25. symbolic data type matlab에는 symbolic 이라는 자료형이 있습니다. 보통 메트랩에서는 a=[1 3]; 이렇게 문자에 값을 지정해주는데요. symbolic같은 경우는 문자만 선언하고 변수로 사용할 수 있습니다. syms x 이런식으로 선언후 사용합니다. 2019. 7. 3.
[matlab 공부하자] 24.mod 함수 (나머지를 반환) 24.mod 함수 (나머지를 반환) 오늘은 나머지를 반환해주는 mod 함수를 배워봅시다. mod(5,4) 이렇게 쓰면5를 4로 나눈 나머지를 반환해줍니다. >> mod(5,4) ans = 1 벡터나 행렬을 넣어도 됩니다. >> mod([1,2,3,4,5],2) ans = 1 0 1 0 1 각 요소를 2로 나눈 결과를 반환해줬죠? >> a=[1 2 3;4 5 6] a = 1 2 3 4 5 6 >> mod(a,2) ans = 1 0 1 0 1 0 2019. 7. 3.
[matlab 공부하자] 23. 행렬의 데이터를 일렬로 나열 23. 행렬의 데이터를 일렬로 나열 >> a=[1 2 3 4 5;1 2 3 4 6;1 6 3 6 3] a = 1 2 3 4 5 1 2 3 4 6 1 6 3 6 3 1행1열부터 3행5열까지의 순으로 나열해보겠습니다. 간단한 코드인데 자주 사용됩니다. >> a(:) ans = 1 1 1 2 2 6 3 3 3 4 4 6 5 6 3 2019. 7. 1.
[matlab 공부하자] 22. matlab color 약어 정리 22. matlab color 약어 정리 r Redg Greenb Bluec Cyanm Magentay Yellowk Blackw White 2019. 7. 1.
[matlab 공부하자] 21. 원하는 구간과 간격으로 데이터 생성하기 21. 원하는 구간과 간격으로 데이터 생성하기 편리하게 데이터를 생성하는 방법입니다. 1부터 10까지 간격을 1로 데이터를 생성해봅시다. >> A=(1:1:10) A = 1 2 3 4 5 6 7 8 9 10 간격을 0.5로 바꿔볼까요 >> A=(1:0.5:10) A = 열 1 ~ 9 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000 5.0000 열 10 ~ 18 5.5000 6.0000 6.5000 7.0000 7.5000 8.0000 8.5000 9.0000 9.5000 열 19 10.0000 이번에는 2부터 10까지 간격 2를 가진 데이터를 생성해보겠습니다. >> B=(2:2:10) B = 2 4 6 8 10 2019. 7. 1.
[matlab 공부하자] 20. max 함수 20. max 함수 max 함수는 최댓값을 반환해주는 함수입니다. 벡터라면 최댓값을 반환해주는데요,행렬의 경우에는 최댓값이 포함된 행을 반환해줍니다. 각 행별 혹은 각 열별 최댓값을 반환해 줄 수도 있습니다. 1) 벡터에서 최댓값을 반환 >> A=[1 2 3 4 5 6]; >> max(A)ans = 6 2) 각 열의 최댓값을 반환 >> B=[1 2 3;4 5 6;7 8 9] B = 1 2 3 4 5 6 7 8 9 >> max(B) ans = 7 8 9 여기서 dim의 의미를 이해할 필요가 있다. dim이 1이라는 것은 '열'을 의미하고dim이 2이라는 것은 '행'을 의미한다. max(B) 를 풀어서?쓰면 max(B,[],1) 이다. B행렬에서 dim=1 인 경우, 즉 각 열에서 최댓값을 찾아 반환하라는 .. 2019. 7. 1.
[matlab 공부하자] 19. 원하는 데이터가 있는 열은 1로 아닌 열은 0으로 바꾸기 (논리연산자 == 이용) 19. 원하는 데이터가 있는 열은 1로 아닌 열은 0으로 바꾸기 (논리연산자 == 이용) one vs all regression 에서 사용하는 코드입니다. 대상이 되는 값을 1, 나머지는 0으로 바꿔줘야 하는 경우가 있는데요 그때 사용합니다. >> a=[1 2 4 1 4 3 4 1 4 1]; >> b=(a==1)b = 1 0 0 1 0 0 0 1 0 1 2019. 7. 1.
[matlab 공부하자] 18. reshape 함수 (기존 행렬을 원하는 사이즈의 행렬로 바꿈) 18. reshape 함수 (기존 행렬을 원하는 사이즈의 행렬로 바꿈) reshape 함수는 기존의 행렬을 다른 사이즈의 행렬로 바꿔주는 함수입니다. 물론 제한은 있습니다.5X1의 행렬을 2행짜리 행렬로는 바꿀 수 없습니다. 사이즈가 일치하는 경우에만 교환이 가능합니다.예를 들어봅시다. A=[1 2 3 4 5 6]; reshape(A,[2,3]) ans = 1 3 5 2 4 6 또는 이렇게도 표현이 가능합니다. >> reshape(A,[],3)ans = 1 3 5 2 4 6 A를 열이 3개인 행렬로 바꾼다는 의미입니다. 행의 개수를 굳이 쓸 필요가 없죠. 2019. 7. 1.
[matlab 공부하자] 17. 데이터의 순서를 임의로 섞어보자 (randperm 함수 이용) 17. 데이터의 순서를 임의로 섞어보자 (randperm 함수 이용) 8명의 키로 이루어진 데이터가 있다고 해봅시다. X=[167 165 153 154 156 192 166 177]; 순서를 임의로 섞고 싶을 때 randperm 함수를 이용하면 가능합니다. 먼저 X의 크기를 정의합니다. >> S=size(X,2) S = 8 randperm 함수를 이용해서 1~8까지의 순서를 임의로 섞어줍니다. >> A=randperm(S) A = 1 7 3 2 4 8 5 6 섞은 순서대로 X 데이터의 순서를 바꿔줍니다. >> X=X(:,A) X = 167 166 153 165 154 177 156 192 2019. 7. 1.
[matlab 공부하자] 16. 행렬의 원소의 개수를 반환하는 함수 (numel 함수) 16. 행렬의 원소의 개수를 반환하는 함수 (numel 함수) 행렬의 원소의 개수를 반환해주는 함수가 있습니다. numel 함수입니다. 한번 사용해보겠습니다. >> a=[1 2 3; 4 5 6; 7 8 9;10 11 12] a = 1 2 3 4 5 6 7 8 9 10 11 12 >> numel(a) ans = 12 2019. 7. 1.
[matlab 공부하자] 15. exist 함수 15. exist 함수 exist 함수는 어떤 변수, 함수, 폴더, class 가 존재하는지 여부를 판단해줍니다. 존재하지 않는 경우 0을 존재하는 경우 1을 결과로 줍니다. 예를들어봅시다. >> a=[1 2 3] a = 1 2 3 >> exist a ans = 1 다른 방식으로도 표현이 가능합니다. >> exist('a') ans = 1 '존재하지 않는다' 로도 이용할 수 있습니다. 아래와 같이요. >> ~exist('a') ans = 0 a가 존재하기 때문에 0이 반환되었습니다. 2019. 7. 1.
[matlab 공부하자] 14. 관계 연산자, 논리 연산자 14. 관계 연산자, 논리 연산자 1. 관계 연산자 크다 >작다 =작거나 같다 2019. 7. 1.
[matlab 공부하자] 13. for 사용법 13. for 사용법 for 문 사용 방법을 익혀봅시다. 간단하게 등차수열을 가지고 예제를 만들어 보았습니다. 첫항이 2이고 공차가 3인 등차수열에서 첫째항~다섯째항의 합을 구해봅시다. a=0;sum=0 for i=1:5a=2+3*(i-1);sum=sum+a;end 위에서 정의한 for문은 i에 1,2,3,4,5 를 순서대로 넣고나서 end로 빠져나옵니다. >> sumsum = 40 2019. 7. 1.
[matlab 공부하자] 12. 수집합의 n승을 순차적으로 행렬에 추가하기 12. 수집합의 n승을 순차적으로 행렬에 추가하기 임의의 수집합을 정의합니다. >> x=[1 2 3 4 5 6 7 8 9 10]'x = 1 2 3 4 5 6 7 8 9 10 이 수집합의 각각의 수들의 n승을 a라는 행렬에 저장하는 코드입니다. a=x;degree=5; for i=2:degree a(:,end+1)=x.^i; end 결과는 아래와 같습니다. a = 1 1 1 1 1 2 4 8 16 32 3 9 27 81 243 4 16 64 256 1024 5 25 125 625 3125 6 36 216 1296 7776 7 49 343 2401 16807 8 64 512 4096 32768 9 81 729 6561 59049 10 100 1000 10000 100000 2019. 7. 1.
[matlab 공부하자] 11. 한 행, 또는 한 열의 값을 통채로 바꾸기 11. 한 행, 또는 한 열의 값을 통채로 바꾸기 먼저 예제에 사용할 행렬을 정의합시다. >> A=[1 2 3; 4 5 6; 7 8 9]A = 1 2 3 4 5 6 7 8 9 1행의 값 전체를 3으로 바꿔보겠습니다. >> A(1,:)=3A = 3 3 3 4 5 6 7 8 9 이번에는 2열의 값 전체를 1로 바꿔보겠습니다. >> A(:,2)=1A = 3 1 3 4 1 6 7 1 9 쉽죠? 2019. 7. 1.
[matlab 공부하자] 10. ones 함수 10. ones 함수 ones 함수는 모든 값이 1인 행렬을 만들어 주는 합수입니다. zeros 함수와 ones 함수는 자주 사용되니 기억해두면 좋습니다. 한번 사용해보죠. >> ones(5) ans = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 원하는 크기의 행렬로도 만들 수 있겠죠? >> ones(3,2) ans = 1 1 1 1 1 1 2019. 7. 1.
[matlab 공부하자] 9. 2가지의 input 데이터를 입력하면 자동으로 합격자와 불합격자를 서로 다른 행렬에 저장하는 코드 9. 2가지의 input 데이터를 입력하면 자동으로 합격자와 불합격자를 서로 다른 행렬에 저장하는 코드 logistic regression에서 사용되는 스킬?인데 간단한 예시로 배워봅시다. 학생들의 중간고사 점수, 기말고사 점수와 합격 여부를 알고 있다고 해봅시다. 아래와 같이 표현됩니다. 학생1 : 95,97,1 첫열은 중간고사점수, 둘째열은 기말고사 점수, 셋째열은 합격(1)입니다. 불합격은 (0)으로 표시합니다. 아래와 같은 데이터가 있다고 해봅시다. 95 97 194 93 177 76 065 84 0100 88 197 91 155 67 0 총 7학생의 데이터가 있는데, 이렇게 데이터를 입력하면 자동으로 합격자와 불합격자를 서로 다른 행렬에 저장하는 코드를 짜봅시다. 입력 데이터를 A라고 합시다. .. 2019. 7. 1.
[matlab 공부하자] 8. zeros 함수 8. zeros 함수 zeros 함수는 모든 값이 0인 행렬을 만들어줍니다. 한번 사용해보죠 >> zeros(3) ans = 0 0 0 0 0 0 0 0 0 이번에는 2행3열짜리를 만들어봅시다. >> zeros(2,3) ans = 0 0 0 0 0 0 이번에는 A라는 행렬을 만들고 A와 동일한 크기의 zeros 행렬을 만들어봅시다. >> A=[1 5 3;2 4 2;1 5 6;3 5 2] A = 1 5 3 2 4 2 1 5 6 3 5 2 >> zeros(size(A)) ans = 0 0 0 0 0 0 0 0 0 0 0 0 2019. 7. 1.
[matlab 공부하자] 7. 행과 열을 자유자재로 사용하기 7. 행과 열을 자유자재로 사용하기 X라는 행렬을 정의하고 몇가지 질문에 답하는 방식으로 강의를 진행해보도록 하겠습니다. >> x=[1 2 3;4 5 6;7 8 9;10 11 12] x = 1 2 3 4 5 6 7 8 9 10 11 12 Q1. 2행3열의 값만 알고 싶을 때는 어떻게해야 하나요?? >> x(2,3) ans = 6 Q2. 2행 2열,3열 값을 동시에 알고 싶어요 >> x(2,2:3) ans = 5 6 Q3. 2행 전체를 알고 싶어요. >> x(2,:) ans = 4 5 6 Q3. 3열 전체를 알고 싶어요 >> x(:,3) ans = 3 6 9 12 Q4. 1,2행 전체를 알고 싶어요 >> x([1 2],:) ans = 1 2 3 4 5 6 Q5. 1,3열 전체를 알고 싶어요. >> x(:,.. 2019. 7. 1.
[matlab 공부하자] 6. find 함수 (심화) 6. find 함수 (심화) 이번에는 find함수에 조건을 붙여봅시다. 디폴트는 0이 아닌 값을 찾는 것이었는데. 0인 값만 찾으려면 어떻게해야 할까요? 이렇게 하면 됩니다. >> a=[1 2 0;0 3 4;5 6 0;0 0 9] a = 1 2 0 0 3 4 5 6 0 0 0 9 >> [row col]=find(a==0) row = 2 4 4 1 3 col = 1 1 2 3 3 0 뿐만 아니라 다른 숫자도 찾을 수가 있겠죠? 논리 연산자를 많이 알 수록 find 함수를 더 다양하게 활용할 수 있겠군요. 2019. 7. 1.
[matlab 공부하자] 5. find 함수 (기본) 5. find 함수 (기본) find 함수는 특정한 조건을 걸어주면 해당되는 행과 열을 찾아주는 함수입니다. 예를 들어볼게요. >> a=[0 2 1 5 3 0 2 4 0] a = 0 2 1 5 3 0 2 4 0 >> find(a) ans = 2 3 4 5 7 8 find(a)라는 함수를 썼는데 뭘 찾았죠?0 이 아닌 열을 찾았습니다. 2,3,4,5,7,8 열이 nonzero 값입니다. 디폴트가 뭔지 아시겠죠? 그냥 find 함수를 쓰면 0이 아닌 열을 찾아줍니다. 열만 찾아주는건 아니겠죠? 아래 예시를 보시죠 >> b = [1; 2; 0; 0; 1; 3; 0; 3] b = 1 2 0 0 1 3 0 3 >> find(b) ans = 1 2 5 6 8 이번에는 0 이 아닌 행을 찾아줍니다. ans가 세로로 .. 2019. 7. 1.
[matlab 공부하자] 4. size 함수 4. size 함수 size 함수는 행렬의 크기를 반환해주는 함수입니다. 예를들어보죠. >> A=round(10*rand(3,4)) A = 6 3 3 6 5 2 5 3 0 8 2 7 3행 4열의 행렬을 만들었습니다. size함수를 써보죠. >> size(A) ans = 3 4 이렇게 사용할 수도 있습니다. >> size(A,1) ans = 3 >> size(A,2) ans = 4 2019. 7. 1.
[matlab 공부하자] 3. rand 함수 3. rand 함수 rand 함수는 0~1 사이의 임의 값을 생성해주는 함수입니다. 한번 사용해보죠 >>rand(3) ans = 0.4898 0.7094 0.6797 0.4456 0.7547 0.6551 0.6463 0.2760 0.1626 0~1 사이 값을 같는 3x3행렬이 만들어졌습니다. 원하는 size의 행렬을 만들 수 있는데요. 2X3 행렬을 만들어 볼게요. >> rand(2,3) ans = 0.1190 0.9597 0.5853 0.4984 0.3404 0.2238 0~10 사이의 숫자를 만들고 싶으면 어떻게 하면 될까요? 10을 곱해주면 됩니다. >> 10*rand(2,3) ans = 7.5127 5.0596 8.9090 2.5510 6.9908 9.5929 0~10 사이의 정수를 만들려면??반.. 2019. 7. 1.
[matlab 공부하자] 2. 반올림 (round) , 올림(ceil), 버림(floor), 0을 향해 버림 또는 올림(fix) 2. 반올림 (round) , 올림(ceil), 버림(floor), 0을 향해 버림 또는 올림(fix) matlab에는 반올림을 해주는 함수가 내장되어있습니다. round라는 함수인데, 일단 한번 사용해봅시다. >>a=1.12424>>round(a) ans = 1 흠..디폴트가 '정수까지 반올림하라' 임을 알 수 있습니다.소수점 몇째짜리까지 반올림할지를 결정할 수 있는데 아래처럼 하면 됩니다.둘째자리까지 반올림해보겠습니다. >>a=1.12424>>round(a,2) ans = 1.1200 이정도만 알아도 충분하지만 조금 더 알아보죠.유효숫자의 개념으로 사용할 수도 있습니다. 유효숫자의 개수를 설정해주는 것이죠. >>b=21.345>>round(b,3,'significant') ans = 21.3000 이.. 2019. 7. 1.
반응형