1.

>> a = [1, 2 3]
a =
     1     2     3
>> b = [1 2 3; 4 5 6]
b =
     1     2     3
     4     5     6
>> b = [1 2 3; 4 5 6];
>> 
>> x = 1:6
x =
     1     2     3     4     5     6
>> x = [1:6]
x =
     1     2     3     4     5     6
>> x = 1 : pi/50
x =
  1×0 비어 있는 double 행 벡터
>> x = 1 : pi/50 : pi
x =
  1 ~ 6번 열
    1.0000    1.0628    1.1257    1.1885    1.2513    1.3142
  7 ~ 12번 열
    1.3770    1.4398    1.5027    1.5655    1.6283    1.6912
  13 ~ 18번 열
    1.7540    1.8168    1.8796    1.9425    2.0053    2.0681
  19 ~ 24번 열
    2.1310    2.1938    2.2566    2.3195    2.3823    2.4451
  25 ~ 30번 열
    2.5080    2.5708    2.6336    2.6965    2.7593    2.8221
  31 ~ 35번 열
    2.8850    2.9478    3.0106    3.0735    3.1363
>> x = 0 : -2 : -5
x =
     0    -2    -4
>> % 0~10 까지 총 10개의 등차수열
>> %linspace(처음값, 끝깞, 총개수)
>> linpace(0, 10, 10)
'linpace'은(는) 인식할 수 없는 함수 또는 변수입니다. 
정정 제안:
>> linspace(0, 10, 10)
ans =
  1 ~ 6번 열
         0    1.1111    2.2222    3.3333    4.4444    5.5556
  7 ~ 10번 열
    6.6667    7.7778    8.8889   10.0000
>>

 

2.

>> b
b =
     1     2     3
     4     5     6
>> b'
ans =
     1     4
     2     5
     3     6
>> ans'
ans =
     1     2     3
     4     5     6
>> 
>> b1 = 1: 0.2 : 2
b1 =
    1.0000    1.2000    1.4000    1.6000    1.8000    2.0000
>> b2 = rand (5,4)
b2 =
    0.8147    0.0975    0.1576    0.1419
    0.9058    0.2785    0.9706    0.4218
    0.1270    0.5469    0.9572    0.9157
    0.9134    0.9575    0.4854    0.7922
    0.6324    0.9649    0.8003    0.9595
>> help rand
 rand - 균일하게 분포된 난수
    구간 (0,1)에 균일하게 분포된 난수 하나를 반환합니다.

    X = rand
    X = rand(n)
    X = rand(sz1,...,szN)
    X = rand(sz)

    X = rand(___,typename)
    X = rand(___,'like',p)

    X = rand(s,___)

    입력 인수
        n - 정사각 행렬의 크기
            정수 값
        sz1,...,szN - 각 차원의 크기(개별 인수)
            정수 값
        sz - 각 차원의 크기(행 벡터)
            정수 값
        typename - 생성할 데이터형(클래스)
            'double' (디폴트 값) | 'single'
        p - 생성할 배열의 프로토타입
            숫자형 배열
        s - 난수 스트림
            RandStream 객체

    예제를 엽니다.
        난수로 구성된 행렬
        지정된 구간 내의 난수
        정수형 난수
        복소수형 난수
        난수 생성기 재설정
        난수로 구성된 3차원 배열
        난수의 데이터형 지정
        기존 배열의 크기 복제
        기존 배열의 크기와 데이터형 복제

    See also randi, randn, rng, RandStream, sprand, sprandn, randperm

    R2006a 전에 추가됨
    rand에 대한 문서
    이름이 rand인 다른 함수

>> 
>> b3 = ones(3,4)
b3 =
     1     1     1     1
     1     1     1     1
     1     1     1     1
>> b4 = zeros(8,3)
b4 =
     0     0     0
     0     0     0
     0     0     0
     0     0     0
     0     0     0
     0     0     0
     0     0     0
     0     0     0
>> b5 = eye(3)
b5 =
     1     0     0
     0     1     0
     0     0     1
>> 
>> 
>>

 

3. empty array

- 초기화
- 엘리먼트 삭제

>> x = []

x =

     []

>> whos
  Name      Size            Bytes  Class     Attributes

  x         0x0                 0  double              

>> w
'w'은(는) 인식할 수 없는 함수 또는 변수입니다.
 
>> x

x =

     []

>> x = [ x , 3 ]

x =

     3

>> x = [ x , 3 ]

x =

     3     3

>> x = [ x , 3 ]

x =

     3     3     3

>> x = [ x , 3 ]

x =

     3     3     3     3

>> x = [ x , 3 ]

x =

     3     3     3     3     3

>> x = [ x , 3 ] % 기존에 x에 3을 붙여서 더 큰 행렬을 만들어라

x =

     3     3     3     3     3     3

>>

 

4. 2D array

>> a = rand (6,4)

a =

    0.8147    0.2785    0.9572    0.7922
    0.9058    0.5469    0.4854    0.9595
    0.1270    0.9575    0.8003    0.6557
    0.9134    0.9649    0.1419    0.0357
    0.6324    0.1576    0.4218    0.8491
    0.0975    0.9706    0.9157    0.9340

>> %():index
>> A(2,3)
'A'은(는) 인식할 수 없는 함수 또는 변수입니다.
 
정정 제안:
>> a(2,3)

ans =

    0.4854

>> %A(행,열):index
>> r = rand (10,1)

r =

    0.6787
    0.7577
    0.7431
    0.3922
    0.6555
    0.1712
    0.7060
    0.0318
    0.2769
    0.0462

>> r(3)

ans =

    0.7431

>> r(3,1)

ans =

    0.7431

>> r(1,3)
Index in position 2 exceeds array bounds. Index must not exceed 1.
 
>> r([3 4 5])

ans =

    0.7431
    0.3922
    0.6555

>> r([1 3 4 5 2])

ans =

    0.6787
    0.7431
    0.3922
    0.6555
    0.7577

>> r(3:5)

ans =

    0.7431
    0.3922
    0.6555

>> r

r =

    0.6787
    0.7577
    0.7431
    0.3922
    0.6555
    0.1712
    0.7060
    0.0318
    0.2769
    0.0462

>> r(4) = []

r =

    0.6787
    0.7577
    0.7431
    0.6555
    0.1712
    0.7060
    0.0318
    0.2769
    0.0462

>> r(0)
배열 인덱스는 양의 정수이거나 논리값이어야 합니다.
 
>> r

r =

    0.6787
    0.7577
    0.7431
    0.6555
    0.1712
    0.7060
    0.0318
    0.2769
    0.0462

>> length(e)
'e'은(는) 인식할 수 없는 함수 또는 변수입니다.
 
>> length(r)

ans =

     9

>> a

a =

    0.8147    0.2785    0.9572    0.7922
    0.9058    0.5469    0.4854    0.9595
    0.1270    0.9575    0.8003    0.6557
    0.9134    0.9649    0.1419    0.0357
    0.6324    0.1576    0.4218    0.8491
    0.0975    0.9706    0.9157    0.9340

>> size(a)

ans =

     6     4

>> [m,n] = size(a)

m =

     6


n =

     4

>> size(A,1)
'A'은(는) 인식할 수 없는 함수 또는 변수입니다.
 
정정 제안:
>> size(a,1)

ans =

     6

>> size(a, 3)

ans =

     1

>> a

a =

    0.8147    0.2785    0.9572    0.7922
    0.9058    0.5469    0.4854    0.9595
    0.1270    0.9575    0.8003    0.6557
    0.9134    0.9649    0.1419    0.0357
    0.6324    0.1576    0.4218    0.8491
    0.0975    0.9706    0.9157    0.9340

>> help size
 size - 배열 크기
    A의 각 차원 길이를 요소로 갖는 행 벡터를 반환합니다.

    sz = size(A)
    szdim = size(A,dim)
    szdim = size(A,dim1,dim2,…,dimN)
    [sz1,...,szN] = size(___)

    입력 인수
        A - 입력 배열
            스칼라 | 벡터 | 행렬 | 다차원 배열
        dim - 쿼리 차원
            양의 정수 스칼라 | 양의 정수 스칼라로 구성된 벡터
        dim1,dim2,…,dimN - 쿼리 차원 목록
            양의 정수 스칼라

    출력 인수
        sz - 배열 크기
            음이 아닌 정수로 이루어진 행 벡터
        szdim - 차원 길이
            음이 아닌 정수 스칼라 | 음이 아닌 정수 스칼라로 구성된 벡터
        sz1,...,szN - 개별적으로 나열되는 차원 길이
            음이 아닌 정수 스칼라

    예제를 엽니다.
        4차원 배열의 크기
        테이블의 크기
        개별 인수로 차원 길이 반환하기

    See also length, strlength, ndims, numel, height, width

    R2006a 전에 추가됨
    size에 대한 문서
    이름이 size인 다른 함수

>>

 

5. Array indexing

>> a

a =

    0.8147    0.2785    0.9572    0.7922
    0.9058    0.5469    0.4854    0.9595
    0.1270    0.9575    0.8003    0.6557
    0.9134    0.9649    0.1419    0.0357
    0.6324    0.1576    0.4218    0.8491
    0.0975    0.9706    0.9157    0.9340

>> a (2,3)

ans =

    0.4854

>> a (11)

ans =

    0.1576

>> a (11) % 11번째? column major

ans =

    0.1576

>> a

a =

    0.8147    0.2785    0.9572    0.7922
    0.9058    0.5469    0.4854    0.9595
    0.1270    0.9575    0.8003    0.6557
    0.9134    0.9649    0.1419    0.0357
    0.6324    0.1576    0.4218    0.8491
    0.0975    0.9706    0.9157    0.9340

>> a(2:3, 2:4)

ans =

    0.5469    0.4854    0.9595
    0.9575    0.8003    0.6557

>> a([1 3], [2 4])

ans =

    0.2785    0.7922
    0.9575    0.6557

>> a(1:end, 2)

ans =

    0.2785
    0.5469
    0.9575
    0.9649
    0.1576
    0.9706

>> a(:, 2)

ans =

    0.2785
    0.5469
    0.9575
    0.9649
    0.1576
    0.9706

>> A (2:3, :)
'A'은(는) 인식할 수 없는 함수 또는 변수입니다.
 
정정 제안:
>> a (2:3, :)

ans =

    0.9058    0.5469    0.4854    0.9595
    0.1270    0.9575    0.8003    0.6557

>> A = rand(3,4)

A =

    0.4456    0.7547    0.6551    0.4984
    0.6463    0.2760    0.1626    0.9597
    0.7094    0.6797    0.1190    0.3404

>> a = A(:)

a =

    0.4456
    0.6463
    0.7094
    0.7547
    0.2760
    0.6797
    0.6551
    0.1626
    0.1190
    0.4984
    0.9597
    0.3404

>> B = [4, 3]

B =

     4     3

>> clear B
>> B = zeros(4, 3)

B =

     0     0     0
     0     0     0
     0     0     0
     0     0     0

>> B(:) = b
'b'은(는) 인식할 수 없는 함수 또는 변수입니다.
 
정정 제안:
>> B(:) = a;
>> B(:) = B';
>> a

a =

    0.4456
    0.6463
    0.7094
    0.7547
    0.2760
    0.6797
    0.6551
    0.1626
    0.1190
    0.4984
    0.9597
    0.3404

>> B

B =

    0.4456    0.6797    0.9597
    0.2760    0.4984    0.7547
    0.1190    0.7094    0.1626
    0.6463    0.6551    0.3404

>>

 

6. Complex numbers

>> format compact
>> x1 = 3 + 5i
x1 =
   3.0000 + 5.0000i
>> x2 = 1-0.741j
x2 =
   1.0000 - 0.7410i
>> x1/x2
ans =
  -0.4551 + 4.6628i
>> whos x1
  Name      Size            Bytes  Class     Attributes

  x1        1x1                16  double    complex   

>> real(x1)
ans =
     3
>> imag(x2)
ans =
   -0.7410
>> abs(x2)
ans =
    1.2446
>> angle(x1)
ans =
    1.0304
>> angle(x1)*100/pi
ans =
   32.7979
>> m = abs(x1)
m =
    5.8310
>> phi = angle(x1)
phi =
    1.0304
>> m*exp(1j*phi)
ans =
   3.0000 + 5.0000i
>> x = rand(3,1) + 1j*rand(3,1)
x =
   0.1524 + 0.9961i
   0.8258 + 0.0782i
   0.5383 + 0.4427i
>> whos x
  Name      Size            Bytes  Class     Attributes

  x         3x1                48  double    complex   

>> x'
ans =
   0.1524 - 0.9961i   0.8258 - 0.0782i   0.5383 - 0.4427i
>> x.'
ans =
   0.1524 + 0.9961i   0.8258 + 0.0782i   0.5383 + 0.4427i
>>

 

 

* human language vs programming language
- h : vocabulary, grammar, listening, speaking
- p : command, syntax

* coding > link > complie > ~.exe
- C, Fortran : compiler Language
- Matlab, Python : interpreter Language

* Overwriting, reserved name

>> v = 1

v =

     1

>> v = [3,5]

v =

     3     5

>> pi

ans =

    3.1416

>> i

ans =

   0.0000 + 1.0000i

>> j

ans =

   0.0000 + 1.0000i

>> i = 4

i =

     4

>> j = 6

j =

     6

>> i

i =

     4

>> j

j =

     6

>>

 

* variable name

>> namelengthmax

ans =

    63

>> sin(pi)

ans =

   1.2246e-16

>> sin = 3.4

sin =

    3.4000

>> sin(pi)
배열 인덱스는 양의 정수이거나 논리값이어야 합니다.

'sin'은(는) 함수인 동시에 변수인 것 같습니다. 이를 의도하지 않았다면
'clear sin'을(를) 사용하여 변수 'sin'을(를) 작업 공간에서 제거하십시오.
 
>>

 

* meaning of ' = '

- ← assignment
- variable name (변수이름) = expression (수식)

>> k = 3

k =

     3

>> k

k =

     3

>> k = k + 1

k =

     4

>> k = k + 1

k =

     5

>> k = k + 1

k =

     6

>> k = k + 1

k =

     7

 

* ans : 변수가 주어지지 않았을 때

>> k + 1

ans =

     8

 

* clean command window : clc

 

* variable in memory (=workspace) : who, whos

>> who

사용자의 변수:

ans  i    j    k    sin  

>> whos
  Name      Size            Bytes  Class     Attributes

  ans       1x1                 8  double              
  i         1x1                 8  double              
  j         1x1                 8  double              
  k         1x1                 8  double              
  sin       1x1                 8  double              

>>

 

* imaginary number

>> i

i =

     4

>> 1i

ans =

   0.0000 + 1.0000i

>> 2j

ans =

   0.0000 + 2.0000i

>> 0.73j

ans =

   0.0000 + 0.7300i

>> 1*i

ans =

     4

>> k

k =

     7

>> 3k
 3k
  ↑
유효하지 않은 표현식입니다. 곱셈 연산자가 누락되었는지, 구분 기호가 누락되
었거나 짝이 맞지 않는지, 또는 기타 구문 오류가 있는지 확인하십시오. 행렬을
생성하려면 소괄호 대신에 대괄호를 사용하십시오.
 
정정 제안:
>> 3*k

ans =

    21

>>

 

* comment : %


* number representation
- 부동소수점 : 10의 n으로 표현 ex) 3,56*10^-3
- 고정소수점 : 수치 그대로 표현 ex) 0.00356

* floating point (no space anywhere)

>> a = 2.4e3

a =

        2400

>> b = 0.037e+02

b =

    3.7000

>> c = -21.4e-4

c =

   -0.0021

>>

 

* format

>> format long e
>> pi

ans =

     3.141592653589793e+00

>> format long g
>> pi

ans =

          3.14159265358979

>> help format
 format - 명령 창의 출력 표시 형식 설정
    명령 창의 출력 표시 형식을 style로 지정한 형식으로 변경합니다.

    format(style)

    fmt = format
    fmt = format(style)

    입력 인수
        style - 적용할 형식
            문자형 벡터 | string형 스칼라 | DisplayFormatOptions 객체

    출력 인수
        fmt - 현재 표시 형식
            DisplayFormatOptions 객체

    예제를 엽니다.
        긴(long) 형식
        16진수 형식
        짧은 형식 공학 표기법과 긴 형식 공학 표기법
        큰 데이터 범위 형식
        현재 형식 가져오기
        표시 형식을 저장한 후 복원하기

    See also DisplayFormatOptions, disp, fprintf, formattedDisplayText

    R2006a 전에 추가됨
    format에 대한 문서

>> format
>> 1e-8

ans =

   1.0000e-08

>> 1e-2

ans =

    0.0100

>> format compact
>> k = k + 1
k =
     8
>>
>> format long e
>> 1 + 1e-15
ans =
     1.000000000000001e+00
>> 
>> 1 + 1e-16
ans =
     1
>> 1e100 + 1e84
ans =
    1.000000000000000e+100
>> realmax
ans =
    1.797693134862316e+308
>> realmin
ans =
    2.225073858507201e-308
>> 
>> 1/0
ans =
   Inf
>> 0/0
ans =
   NaN
>> %Not a Number = 값이 하나가 아니당
>> a = NaN
a =
   NaN
>> b = inf
b =
   Inf
>>

 

* 변수 지우기

- clear : 전체 변수 삭제

- clear 변수명 : 해당 변수 삭제

 

* help

- help + command/function

- lookfor '~' % '가 있으면 공백 포함

- doc 

 

 

행벡터 열벡터 너무 오랜만이당 다신 안볼줄 알았는데... 아쉽...

 

 

tt02.m
0.00MB

 

1. 튜토리얼 02 - 행렬과 배열

 

(1) 행렬과 배열 생성

>> 입력

% tutorial_02.m

%-------------------------------------------------------
% 행렬과 배열 생성

% 행렬 생성
a = [1 2 3 4];              % 1행 4열 << 행벡터
b = [1 2 3 4; 5 6 7 8];     % 2행 4열

% 함수를 이용한 행렬 생성
c = zeros(5,1);             % 5행 1열, 영행렬 << 열벡터
d = ones(3,3);              % 3행 3열, 1로 구성된 행렬
e = rand(2,3);              % 2행 3열, 숫자 랜덤 발생
f = randi(10,2,3);          % 2행 3열, 정수 랜덤 발생
                            % randi(최대정수,행,열)

% 그냥 출력은 disp()사용!!
% 행렬 출력
disp("행렬 'A'를 출력합니다."),disp(a);
disp("행렬 'B'를 출력합니다."),disp(b);
disp("행렬 'C'를 출력합니다."),disp(c);
disp("행렬 'D'를 출력합니다."),disp(d);
disp("행렬 'E'를 출력합니다."),disp(e);
disp("행렬 'F'를 출력합니다."),disp(f);

%-------------------------------------------------------

 

>> 출력

>> tt02
행렬 'A'를 출력합니다.
     1     2     3     4

행렬 'B'를 출력합니다.
     1     2     3     4
     5     6     7     8

행렬 'C'를 출력합니다.
     0
     0
     0
     0
     0

행렬 'D'를 출력합니다.
     1     1     1
     1     1     1
     1     1     1

행렬 'E'를 출력합니다.
    0.3371    0.7943    0.5285
    0.1622    0.3112    0.1656

행렬 'F'를 출력합니다.
     7     7     8
     3     7     5

 

(2) 행렬의 연산

>>입력

% 행렬의 연산

% 그냥 단순히 연산만 해버리면 컴퓨터에서 처리할 수 있는 범위를 벗어남
% 관련 에러
% Index exceeds the number of array elements. Index must not exceed 1036.

format long;

f_ad = f + 10;      % 행렬의 모든 값 + 10
f_sn = sin(f);      % 행렬의 모든 값을 sin 처리
f_tp = f';          % 전치행렬
f_inv = pinv(f);    % 의사역행렬 << 정방이 아니니까 의사역행렬 사용

% 행렬의 복소수 표현
% 실수부 + 허수부i/허수부j
g = [3+4i, 4+3j; -i, 10j];

% 행렬 출력
disp("행렬 f에 10을 추가합니다."),disp(f_ad);
disp("행렬 f를 sin 처리합니다."),disp(f_sn);
disp("행렬 f의 전치행렬"),disp(f_tp);
disp("행렬 f의 의사역행렬"),disp(f_inv);
disp("행렬의 복소수 표현"),disp(g);

disp("행렬 f는 정방행렬이 아니라서 역행렬처리 불가 !! ㅋㅋㅋㅋ ");

 

>> 출력

행렬 f에 10을 추가합니다.
    20    12    15
    15    13    16

행렬 f를 sin 처리합니다.
  -0.544021110889370   0.909297426825682  -0.958924274663138
  -0.958924274663138   0.141120008059867  -0.279415498198926

행렬 f의 전치행렬
    10     5
     2     3
     5     6

행렬 f의 의사역행렬
   0.165238678090575  -0.131578947368421
  -0.072215422276622   0.131578947368421
  -0.101591187270502   0.210526315789474

행렬의 복소수 표현
  1번 열

  3.000000000000000 + 4.000000000000000i
  0.000000000000000 - 1.000000000000000i

  2번 열

  4.000000000000000 + 3.000000000000000i
  0.000000000000000 +10.000000000000000i

행렬 f는 정방행렬이 아니라서 역행렬처리 불가 !! ㅋㅋㅋㅋ

 

 

의사역행렬 참조 : https://bskyvision.com/256

 

[선형대수학] 의사역행렬(Pseudo inverse)

기본적으로 역행렬은 행렬이 정방행렬일 때만 구할 수 있다. 따라서 행렬이 직사각형 행렬이면 역행렬을 구할 수 없다. 이때는 대신 의사역행렬이라는 것을 구한다. ▶ 의사역행렬(pseudo inverse)

bskyvision.com

 

'프로그래밍 > MATLAB' 카테고리의 다른 글

MATLAB : Array  (0) 2022.04.08
MATLAB : Introduction & Basics  (2) 2022.04.08
MATLAB : 설치 및 튜토리얼 01-데스크탑 기본 사항  (0) 2022.02.19

 

학교에서 MATLAB을 이용해서 과제를 주신다고 하시길래 간단하게 예습을 해보고자 한다.

-----------

 

 

1. MATLAB 설치

https://kr.mathworks.com/?s_tid=gn_logo 

 

MathWorks - MATLAB 및 Simulink 개발 회사

MathWorks Korea의 공식 홈페이지로서, MATLAB(매트랩) 및 Simulink(시뮬링크) 제품 및 서비스, 다운로드, 교육 및 강좌, 커뮤니티 등 다양한 정보를 제공합니다.

kr.mathworks.com

매트랩 홈페이지에 접속해서 트라이얼 버전을 다운받았다.

역시나 다운로드 받기까지 나의 여러 가지 개인 정보를 제공했..

MATLAB 실행파일을 받고 다운로드 할 때는 별 다른 설정이 필요하지 않으면 next next next next >>>>

 

설치 도중에 물어보는 MATLAB 추가 기능에 대해서는 나는 그냥 전체 선택하고 넘어갔음.

 

 

2.  MATLAB 실행 및 도움말 시작하기

MATLAB 실행화면

MATLAB 예습을 위해서 구글링을 하면서 도움이 될만한 포스팅이나 유튜브 강의를 찾아보았는데

유튜브 강의는 대학에서 강의용도로 제공하는 영상들이 대부분으로 있었음.

나는 그냥 쓰는 방법 정도만 익히고 싶기 때문에 강의까지는 너무 어렵고 초록색 부분의 시작하기를 눌러서

MATLAB에서 제공해주는 기본 튜토리얼을 성실하게 따라가 보려 함 ^^ 

 

시작하기를 누르니까 도움말 페이지가 떳음 ...

초록색으로 표시된 튜토리얼을 잘 따라가 보자.

 

3.  글씨 크기 바꾸기 + .m 파일 생성

1) 글씨 크기 바꾸깅

홈 &amp;gt; 환경 &amp;gt; 기본설정
기본설정 &amp;gt; 글꼴

도 있지만 그냥 crrl 누르고 마우스 휠 도르륵...

 

2) 파일 저장 및 명명 규칙

"ctrl+N"' 누르니까 스크립트창이 생겼고 커맨트창은 따로 있음. 파일을 저장하면  .m 으로 저장됨.

 

대충 01.m 으로 저장하려고 했는데 이런 알림 창이 뜸.

다른 언어도 파일을 생성할 때 이름을 규정하는데 제한이 있었는데 MATLAB도 그런가보다.

https://kr.mathworks.com/help/matlab/matlab_env/specify-file-names.html

 

파일 이름 지정하기 - MATLAB & Simulink - MathWorks 한국

다음 MATLAB 명령에 해당하는 링크를 클릭했습니다. 명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.

kr.mathworks.com

요건 파일 명명 규칙 관련된 가이드

 

 

4.  튜토리얼 01 - 테스크탑 기본 사항

 

tt01.m
0.00MB

 

>> 입력

% tutorial_01.m 
% 변수 설정 및 간단한 연산 ^^

% 변수 설정
% 변수명 = 값
a = 10;
b = 20;
c = a + b;

% % 출력
disp('A + B = '),disp(c);
disp(sprintf('A + B = %d ',c));
fprintf('A + B = %d \n',c);

% 함수 사용
d = sin(c);
e = cos(c);
f = tan(c);

% 함수 값을 문자로 변환 후 출력
fprintf('sin(A+B) = %d \n',d);
fprintf('cos(A+B) = %d \n',e);
fprintf('tan(A+B) = %d \n',f);

 

>>출력

>> tt01
A + B = 
    30

A + B = 30 
A + B = 30 
sin(A+B) = -9.880316e-01 
cos(A+B) = 1.542514e-01 
tan(A+B) = -6.405331e+00
>>

 

* 정리 *

- % : 한 줄 주석, 주석 단축키 ctrl+R

- 출력

1) disp('출력 할 문자열'); /// disp('출력'),disp('할')disp('문자열');  >> 구분자에 따라서 \n가 적용 됨.

2) disp(sprintf('출력 할 문자열 %d', 변수)); 

3) fprintf('출력 할 문자열 %d', 변수);  >> 한번에 처리해서 간편하지만, 한 줄 안바꿔주니까 필요시에 \n 표기 필수.

 

 

5. error + 궁금증

1) fprintf(변수명); 은 에러가 났음. 그냥 문자열 포함 없이 출력하고 싶을땐 어떻게 해야함?

2) 예전에 py로 데이터 활용하는 과제하다가 썻던 lib가 math 뭐시기였는데 기억이 안남

3) 참고 url

https://kr.mathworks.com/help/matlab/ref/run.html

https://blog.naver.com/PostView.nhn?blogId=smssky88&logNo=220278466794 

https://aigong.tistory.com/205

 

요건 sin, cos, tan 결과값 이해하려고......

https://seulcode.tistory.com/461

 

지수 표기법 (Exponential notaion) feat. vim: e+01, e-01

Exponential notation - 지수 표기법 feat. vim 지수 표기법은 많은 10의배수가 사용될 경우 모두 표시하기 어렵기 때문에 지수( e )를 사용하여 표기를 하는 방식이다. 가장 쉽게 vim에서 지수 표기를 해보

seulcode.tistory.com

 

 

 

'프로그래밍 > MATLAB' 카테고리의 다른 글

MATLAB : Array  (0) 2022.04.08
MATLAB : Introduction & Basics  (2) 2022.04.08
MATLAB : 튜토리얼 02 - 행렬과 배열  (0) 2022.02.21

+ Recent posts