본문 바로가기
반응형

전체 글404

[재료역학] 재료역학, 동역학, 정역학 차이 재료역학의 목적은 아래와 같습니다. 구조물이 받는 힘과 그 변형을 수학적으로 정의하고 계산하여 구조물의 안전한 설계를 돕는 것이 재료역학의 목적입니다. 구조물이 힘을 받을 때, 구조물의 '반응'을 네가지로 나눌 수 있습니다. 1. 구조물이 움직이지 않고, 변형은 무시할 정도로 작음 (움직임 X, 변형 X) 2. 구조물이 움직이지 않고, 변형이 일어남 (움직임 X, 변형 O) 3. 구조물이 움직이고, 변형은 무시할 정도로 작음 (움직임 O, 변형 X) 4. 구조물이 움직이고, 변형이 일어남 (움직임 O, 변형 O) 1번이 정역학, 2번이 재료역학, 3번이 동역학, 4번이 유연체 동역학 이라는 학문에 속합니다. 우리가 다루는 재료역학은 움직이지 않고 변형만 일어나는 구조물을 다룹니다. 움직임이 없기 때문에,.. 2019. 7. 28.
[matlab 공부하자] 42.파일 너무 많이 열려있다고 에러났을 때 해결방법 42.파일 너무 많이 열려있다고 에러났을 때 해결방법 for문에 fclose('all'); 얘 넣어주면 됨 2019. 7. 4.
[matlab 공부하자] 41.for 문의 i를 문자로 이용하는 방법 41.for 문의 i를 문자로 이용하는 방법 for i=1:1001 filename=strcat(num2str(i,'%.4d')); 2019. 7. 4.
[matlab 공부하자] 40.matlab에서 txt 파일 저장하는 방법(fopen, fprintf) 40.matlab에서 txt 파일 저장하는 방법(fopen, fprintf) 먼저 fopen 이라는 함수에 대해 이해해봅시다. 우리가 기존에open.txt 라는 파일이 저장되어 있다고 해봅시다. 파일의 내용은 1 2 3 4 5 가 들어있다고 해볼게요. fopen 함수는 파일을 불러와서 파일에 ID를 할당해주는 함수입니다.아이디가 할당되면 fscanf 를 이용해서 파일 안에 있는 내용을 볼 수도 있고fprinf를 이용해서 파일 안의 내용을 수정할 수도 있습니다. fopen 함수는 우리가 파일에 접근할 수 있도록 파일과 다른 함수를 연결해주는 ID를 할당해 주는 함수라고 이해하시면 됩니다. open.txt에 fopen 함수를 적용해보겠습니다. >> fopen('open.txt') ans = 5 이렇게 5라는.. 2019. 7. 3.
[matlab 공부하자] 39.특이값 분해(singular value decomposition), svd함수 39.특이값 분해(singular value decomposition), svd함수 특이값 분해는어떤 행렬을 세 행렬의 곱으로 분해하는 것입니다. 말 그래도 분해에요. matlab에서는 svd라는 함수가 사용됩니다. x라는 행렬을 정의하고 함수에 넣습니다. 아래와 같은 형태로 넣어주셔야 해요. [U,S,V] = svd(x) U와 V는 unitary 행렬입니다. 자기 자신의 transpose와 곱하면 항등행렬이 나오는 행렬을 unitary 행렬이라고 합니다. 아래 수식이 성립하죠. U*U'=IV*V'=I S는 diagonal matrix입니다. 예를들면 아래와 같은 행렬이에요. S = 16.8481 0 0 0 1.0684 0 0 0 0.0000 중앙대각선에만 값이 존재합니다. 분해의 결과를 말씀드릴게요. .. 2019. 7. 3.
[matlab 공부하자] 38.행렬, 문자열을 원소로 갖는 cell 함수를 사용해보자. 38.행렬, 문자열을 원소로 갖는 cell 함수를 사용해보자. [ ] 로 표현되는 행렬은 원소로 숫자만을 가질 수 있습니다. {} 로 표현되는 cell 함수는 행렬와 문자열을 원소로 가질 수 있습니다. 한번 사용해봅시다. >> a=cell(2,3) a = [] [] [] [] [] [] 각 cell 안에 행렬과 문자열을 넣을 수 있습니다. >> a{1,1}= [1 2 3;3 4 5] a = [2x3 double] [] [] [] [] [] 행렬이 a{1,1} 에 2x3 행렬로 바뀌었습니다. >> a{2,2}='asdf' a = [2x3 double] [] [] [] 'asdf' [] 2019. 7. 3.
[matlab 공부하자] 37.영어 문장을 전부 소문자로 만드는 함수와 대문자로 만드는 함수 (lower,upper) 37.영어 문장을 전부 소문자로 만드는 함수와 대문자로 만드는 함수 (lower,upper) >> a='GoOd bYe'; 문장을 전부 소문자로 만들어 봅시다. >> lower(a) ans = good bye 문장을 전부 대문자로 만들어 봅시다. >> upper(a) ans = GOOD BYE 2019. 7. 3.
[matlab 공부하자] 36.전체 문장에서 원하는 문자가 들어있는지 찾는 함수 (strfind) 36.전체 문장에서 원하는 문자가 들어있는지 찾는 함수 (strfind) strfind(문자열, '찾고싶은거') strfind 함수는 문자열에서 찾고싶은 문자를 찾아줍니다. 문자의 위치를 반환해줍니다. 예를 들어봅시다. >> a='i am in a cafe now';>> strfind(a,'cafe') ans = 11 2019. 7. 3.
[matlab 공부하자] 35.두 문자열을 비교 (strcmp) 35.두 문자열을 비교 (strcmp) strcmp(문자열1,문자열2) 는 두 문자열을 비교해서 같으면 1을 다르면 0을 반환해주는 함수입니다.한번 사용해보겠습니다. >> a='apple';>> b='apple';>> strcmp(a,b) ans = 1 2019. 7. 3.
[matlab 공부하자] 34.bsxfun 함수(두 배열간 원하는 계산을 수행) 34.bsxfun 함수(두 배열간 원하는 계산을 수행) bsxfun 함수는 두 배열간에 원하는 연산을 수행해주는 함수입니다.아래와 같이 표현합니다. bsxfun(@원하는 연산, 배열1, 배열2) 예를들어 두 배열의 차를 구하고 싶다고 해봅시다. 사실 차 같은 경우는 그냥 빼면되긴 하지만요. a=[1 2 3 4 5]'b=[10 20 30 40 50]' c=bsxfun(@minus,a,b); 실행 결과는 아래와 같습니다. >> c c = -9 -18 -27 -36 -45 이외에도 다양한 연산이 가능합니다. 아래 표를 첨부하였습니다. 2019. 7. 3.
[matlab 공부하자] 33. and 연산자 33. and 연산자 and 연산자는 & 인데, 두개의 피연산자가 참이면 1을 반환합니다. 피연산자가 참이라는 것은 값이 0이 아니라는 의미에요. 예를 들어보겠습니다. >> A=1;, B=1; A&B ans = 1 >> A=1;, B=0; A&B ans = 0 이해가 되시나요? 둘다 0이 아닐 때만 1을 반환합니다. 하나라도 0이면 0을 반환해요. 이번엔 조금 더 심화된 예를 들어봅시다. >> A=[1 2 0 0 1];B=[0 2 0 1 1]; A&B ans = 0 1 0 0 1 위와 같이 벡터나 행렬의 경우에는 각 요소별로 값을 반환합니다. 2019. 7. 3.
[matlab 공부하자] 32.magic 행렬 32.magic 행렬 magic 행렬은 어느 방향으로 더하던지 그 합이 같은 행렬입니다. 정방행렬(nxn)만 가능합니다. 예를 들어보죠. >> magic(3) ans = 8 1 6 3 5 7 4 9 2 >> magic(4) ans = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 2019. 7. 3.
[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.
반응형