본문 바로가기

programming language/MATLAB215

MATLAB Symbolic math toolbox 를 이용한 latex 변환과 수식 입력 이전 포스팅에서 Symbolic math toolbox 에 대해 간단하게 설명 드린 적이 있습니다. 2011/04/04 - [MATLAB] - MATLAB 수학이 쉬워지는 symbolic math toolbox 오늘은 symbolic math toolbox 를 이용한 latex code 변환과 MathType 이라는 수식입력 프로그램을 이용한 워드프로세서에서의 수식입력에 대해 설명 드리겠습니다. 간단하게 다음과 같은 등차수열의 합을 symbolic math 를 이용하여 계산하고 그 결과를 MathType 을 이용하여 워드에 입력해 보죠. 아래 코드는 symbolic math 를 이용하여 위 수식에 대해 계산한 것입니다. latex() 함수를 통해 결과를 latex code 로 표현해 줬습니다. 위 결과에.. 2011. 4. 7.
MATLAB Bernoulli random variable generation Random Variable을 생성하기 위해서는 r.v. 의 CDF 값을 알고 있어야 한다. CDF 값을 알고 있으면, 대부분의 컴퓨터 언어에서 기본적으로 제공하는 uniform r.v. 을 생성한 후 CDF 의 inverse 를 통해 r.v. 을 생성한다. 오늘의 포스팅에서는 MATLAB 을 이용하여 Bernoulli r.v. 를 생성해 보고 그 PMF(Probability Mass Function)와 CDF 를 확인한다. bernoulli r.v. 은 k=0, 1 에 대하여 다음과 같은 PMF 및 CDF 값을 갖는다. PMF: CDF: 그럼 이제 MATLAB을 이용하여 Bernoulli r.v. generation 을 생성해 보자. 코드는 다음과 같다. 위 코드는 p = 0.3 인 경우의 Bernou.. 2011. 4. 6.
MATLAB 과 Excel을 연동해 보자 MS office 프로그램 중 엑셀은 굉장히 범용적으로 많이 사용되는 소프트웨어 입니다. 일단 본론에 들어가기 앞서 엑셀 공부하기 좋은 사이트부터 말씀 드리죠. 엑셀러 권현욱 님의 홈페이지인 http://www.iexceller.com/ 인데요. 여기는 뭐 말이 필요 없는 사이트 입니다. 엑셀 및 VBA 관련 강좌가 굉장히 많이 그리고 잘~ 정리가 되 있습니다. 엑셀 공부하시는 분들은 굳이 책 사 볼 필요 없이 위 사이트만 맨날 들어가서 봐도 될 것 같습니다. 이제 오늘의 본론으로 들어가서 MATLAB 과 엑셀의 연동에 대해 말씀 드리겠습니다. MATLAB 과 엑셀의 연동을 위해서는 일단 Spreadsheet Link EX 라는 툴박스가 필요 합니다. 위 툴박스가 설치되어 있다는 가정하에 설명 드리겠습니.. 2011. 4. 6.
MATLAB Symbolic math 미적분, diff(), int() MATLAB math toolbox 를 이용한 미분은 diff() 함수를 통해 구할 수 있습니다. 다음 식에 대하여 diff() 함수를 이용하여 미분을 수행해 보죠. syms x f = x^4+3*x^2+x+2 f = x^4 + 3*x^2 + x + 2 diff(f, x) % f 값을 x 에 대하여 미분 ans = 4*x^3 + 6*x + 1 diff(f, x, 2) % f 값을 x 에 대하여 2번 미분 ans = 12*x^2 + 6 Symbolic 식에 대한 적분은 int() 함수를 통해 이루어 집니다. 정적분 뿐만이 아니라 부정 적분도 수행 합니다. int(f,x) % 부정 적분 ans = x^5/5 + x^3 + x^2/2 + 2*x int(f, x, 1, 5) % 1~5 구간에 대한 적분 ans .. 2011. 4. 5.
MATLAB 누적합 cumsum(), 누적곱 cumprod(), 누적 사다리꼴 수치 적분 cumtrapz() cumsum() 함수를 이용하면 vector 또는 matrix 에 대한 누적 합을 아주 쉽게 구할 수가 있다. 사용법은 다음과 같으며, 행 또는 열 별로 이전 값과 누적이 되는 것을 확인 할 수 있다. cumprod() 함수는 누적 곱을 할 때 이용한다. cumtrapz() 함수는 누적 사다리꼴 수치 적분을 할 때 이용한다. 위 결과에서 trapz() 함수를 이용한 것과 cumtrapz() 함수의 마지막 값이 같음을 알 수 있다. 2011. 4. 4.
MATLAB 수학이 쉬워지는 symbolic math toolbox MATLAB 은 기본적으로 수치 연산을 수행합니다. 즉 , 1+2=3 이런 식으로 말이죠. 하지만 MATLAB Symbolic math toolbox 를 이용하면 symbolic 변수들을 이용한 계산도 가능합니다. symbolic math 란 c=a+b 형태로 문자를 이용한 수학 계산을 하는 것을 말합니다. symbolic math 를 이용하기 위해서는 첫 번째로 변수를 symbolic 형태로 선언 해 줘야 합니다. symbolic 선언은 sym() 함수를 이용합니다. x=sym('x') 하면 x 를 complex symbolic 변수로 선언합니다. default 로 complex 타입으로 선언하는 거죠 x=sym('x','real') 하면 x 를 real 변수로 선언합니다. x = sym('x', 'p.. 2011. 4. 4.
MATLAB Bisection method(이분법) 오늘의 포스팅에서는 MATLAB 을 이용하여 간단한 수치해석 기법인 bisection method(이분법) 에 대해 알아 보겠습니다. bisection method 는 특정 구간의 중간 값의 부호 판단을 통해 수치적으로 해를 구하는 방식입니다. 에 대하여 상대오차 10-8 이하가 되도록 [-10, 10] 구간에서 해를 구해 보겠습니다. command 창에서 결과를 확인하면 Bisection method 를 이용한 결과와 roots() 함수를 이용한 결과가 근사적으로 일치함을 확인 할 수 있습니다. 2011. 4. 3.
MATLAB rot90(), triu(), transpose, hermitian transpose, upper(), lower() MATLAB 의 rot90() 함수는 matrix 를 시계 반대방향으로 돌리는 기능을 하는 함수입니다. x=magic(4) x = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 위 x 에 대하여 다음과 같이 하면 시계 방대방향으로 90 도 돌리게 됩니다. x1=rot90(x) x1 = 13 8 12 1 3 10 6 15 2 11 7 14 16 5 9 4 위 x 에 90 도씩 3번 시계 방대방향으로 돌리고 싶다면 다음과 같이 하면 됩니다. x2=rot90(x,3) x2 = 4 9 5 16 14 7 11 2 15 6 10 3 1 12 8 13 다음으로 설명한 명령어는 triu(), tril() 함수 입니다. triu() 함수는 upper triangular 부분을 구하는 함수이며 tr.. 2011. 4. 3.
MATLAB diff(), sortrows(), 오늘의 포스팅에서는 MATLAB 기본 함수 몇 가지에 대해 설명해 보려 합니다. diff(X, n) 함수는 인자간의 차이를 구하는 함수 입니다. n 값은 차이를 구하는 횟수를 의미 합니다. 아래 예를 보면 쉽게 이해하실 겁니다. diff(x, 2) 는 차이를 두 번 구하는 거죠. diff(x) 의 결과를 보면 [2 2 2 2] 니까 이 벡터에 대해 차이를 구하면 [0 0 0]이 나오게 되는 겁니다. sortrows(X, n) 은 X matrix 를 n column index 기준으로 정렬하는 함수 입니다. default 는 오름차순입니다. 다음 예를 보죠. 1열을 기준으로 오름차순 정렬하는 예입니다. 2열을 기준으로 오름차순 정렬하는 예입니다. 다음 예는 1열을 기준으로 오름차순 정렬한 후에 1열에 같은.. 2011. 4. 3.
MATLAB .* ./ .^ 연산 MATLAB 은 matrix 연산을 기본으로 한다. 즉 다음과 같이 A*B 의 경우 matrix 곱셈을 수행한다는 것이다. 그런데 저 곱하기에 아래와 같이 .(점)만 하나 더 찍어 주면 각 인자간의 곱이 된다. 이처럼 인자간의 연산을 할 때는 당연히 두 벡터 또는 매트릭스의 size 가 같아야 한다. /, ^ 등의 연산자도 마찬가지다. ./, .^ 연산을 하게 되면 각 인자간의 연산을 수행하게 된다. 2011. 4. 1.
MATLAB index 이번 포스팅에서는 MATLAB 인덱스에 대해 설명한다. 다음 matrix A 에 대한 각 인덱스의 접근 방법에 대해 알아보자. : (콜론) 의 사용법에 대해 알아보자. : 은 a:b 와 같은 형태로 쓰이면 a~ b 까지라는 뜻이다. 인덱스에 접근하는 용도로 : 을 쓸 때 a,b 값은 1보다 큰 양의 정수 여야 한다. : 을 이용하여 A 의 3행 1열부터 4열 까지의 값을 B 라는변수에 입력해 보자. 행, 열을 구분하지 않고 다음과 같이 접근할 수도 있다. MATLAB 은 기본적으로 행 벡터 즉 열을 기준으로 연산을 하는 특징이 있다. A 의 5행 모든 열을 D 라는 변수에 입력해 보자. 콜론을 이용하여 인덱스에 접근을 할 때 콜론만 단독으로 쓰일때는 '모든 것' 을 의미 한다. 다음으로 인덱스 접근시의 .. 2011. 4. 1.
MATLAB shortcut, 단축키 설정 오늘은 MATLAB 단축키 설정 방법에 대해 알아 본다. MATLAB desktop 에서 File 메뉴 à 그 다음에 Preferences 메뉴에 들어간다. 그럼 다음과 같은 창이 뜬다. 1번 부분을 선택하여 shortcut 설정 탭으로 들어간다. 2 번 부분에 설정하고자 하는 주제를 입력한다. 위 예에서는 cell 에 대한 단축키를 설정하기 위해서 cell 을 썼다. 3번 부분에 나온 단축키 설정 가능한 리스트들 중에서 설정 하고자 하는 동작을 선택한다. 기존에 단축키가 있었다면 4 번 부분에서 원하는 단축키를 설정한다. 기존에 단축키가 없는 동작에 대해 단축키를 설정하기 위해서는 5번 부분에 있는 + 를 누르고 4번 부분에서 단축키를 설정한다. 마지막으로 다 설정을 했으면 Apply à OK 를 누른다. 2011. 4. 1.
MATLAB 최대공약수 gcd(), 최소공배수lcm() 오늘의 포스팅에서는 최대 공약수와 최소 공배수 관련 함수에 대해 살펴 본다. MATLAB 내장 함수로 gcd() 함수는 최대 공약수를 계산해 주는 함수이다. scalar 뿐만이 아니라 벡터에 대해서도 최대 공약수를 계산해 준다. 사용법은 다음 예와 같다. 다음으로 최소 공배수를 계산해주는 함수는 lcm() 이다. lcm() 함수 역시 scalar 뿐만이 아니라 벡터에 대해서도 최소 공배수를 계산해 준다. 2011. 3. 30.
MATLAB 소수 관련 함수 primes(), isprime() 이번 포스팅에서는 MATLAB 의 내장 함수 중 primes(), isprime()에 대해 알아보고, 소수인지 판별해주는 함수를 직접 작성해 보겠습니다. 내장 함수 중 소수를 생성해주는 함수로는 primes(n) 라는 함수가 있습니다. 이 함수는 n 보다 작은 소수를 생성해 줍니다. 아래 예는 primes() 함수를 사용하여 30보다 작은 소수들을 생성한 것입니다. 소수인지 판별하는 함수는 isprime(K) 라는 함수가 있습니다. 이 함수는 K 가 소수면 1 아니면 0을 반환하게 됩니다. 사용법은 다음과 같습니다. 그럼 이제 소수인지 판별하는 함수를 직접 코딩 해 보죠. 함수 이름은 My_isprime() 이라 해 보죠. 제가 짠 함수는 아래와 같습니다. 일단 벡터나 매트릭스 입력에 대해서도 동작하게 .. 2011. 3. 30.
MATLAB diag(), eye(), zeros(), ones() 이번 글에서는 MATLAB 의 기본적인 몇몇 함수들에 대해 알아 보겠습니다. diag() 함수를 이용하여 diagonal matrix 를 만들거나 matrix 의 diagonal 값을 얻을 수 있습니다. eye() 함수를 이용하여 identity matrix 를 만들 수 있습니다. zeros() 함수를 이용하여 zero matrix 를 만들 수 있습니다. ones() 함수를 이용하여 1로 구성된 matrix 를 만들 수 있습니다. blkdiag() 함수를 이용하여 diagonal 값이 matrix 로 구성된 matrix 를 만들 수 있습니다. 2011. 3. 27.
MATLAB persistent MATLAB 함수 내부의 변수는 함수 사용 후에는 메모리 상에서 지워지게 됩니다. 하지만 경우에 따라 함수 내부에서 변수가 계속 유지 되게 할 필요가 있는 경우가 있습니다. 이러한 경우에 persistent keyword 를 사용합니다. 다음 예를 통해 persistent 에 대해 알아보죠. 아래 그림의 y=persistent_func(a,b) 함수는 a, b 값 입력을 받아서 a+b+c 값을 출력하는 함수 입니다. c 값에는 함수 내부에서 메모리상에 계속 남아 있도록 하기 위하여 persistent 로 설정했습니다. 그리고 초기값 설정을 위하여 isempty() 함수를 써서 c 값이 비어 있으면 초기값을 설정하도록 하였습니다. 위 함수에 대하여 다음과 같이 사용해 보도록 하겠습니다. 함수 내부에서 c .. 2011. 3. 27.
MATLAB contour 등고선 그리기 MATLAB contour() 함수를 이용하면 등고선 그래프를 매우 쉽게 그릴 수 있다. 다음과 수식에 따른 값에 대해 등고선을 그려 보자. [X,Y] = meshgrid(-2:2); % X,Y 값 설정 Z = 10*(X/5 - X.^3 - Y.^5).*exp(-X.^2-Y.^2); % Z 값 계산 위 식에 대해 아래 명령으로 등고선을 간단하게 그릴 수 있다. figure, contour(X,Y,Z), colorbar 등고선 사이의 표면에 색을 입히고 싶다면 contourf() 함수를 이용한다. figure, contourf(X,Y,Z), colorbar 다음과 같은 등고선 그래프를 얻을 수 있다. 위 그래프를 보면 간격이 너무 넓어서 등고선이 너무 각진 형태로 나오는 것을 확인 할 수 있다. 이럴 때는.. 2011. 3. 27.
MATLAB, Newton method 를 이용하여 해를 구해 보자 Newton method 는 미분 가능한 연속 함수 f(x) 에 대하여 다음과 같은 방식으로 f(x) =0 의 해를 구하는 방법이다. 위 식에 대하여 Newton method 를 이용하여 f(x) =0 이 되는 실수 해 x 를 구해 보자. 위 식에 대한 미분 결과는 다음과 같다. Newton method 의 최대 반복 횟수는 100 회로 하고 상대 오차는 10-9 으로 설정 한 후 이를 만족하는 해를 찾아 본다. MATLAB code 는 다음과 같다. command 창에서 결과를 확인 하면 Newton method 를 이용한 결과와 roots() 함수를 이용한 결과가 근사적으로 일치 함을 확인 할 수 있다. 2011. 3. 27.
MATLAB QPSK BER simulation in AWGN channel 이번 포스팅에서는 AWGN (Additive white gaussian noise) 채널 환경에서의 QPSK Bits Error Rate(BER)에 성능 검증 simulation 에 대해 설명한다. QPSK 및 잡음의 분산(σ2) 과 No(noise power spectral density) 의 관계에 대한 내용은 다음 포스팅을 참조 하기 바란다. 2011/03/19 - [MATLAB] - MATLAB BPSK BER simulation in AWGN channel 2011/03/08 - [통신] - [디지털 통신] BPSK, QPSK QPSK 에서는 아래 식의 M =4 이다. 따라서 다음 식과 같이 정리 된다. QPSK 시뮬레이션 시의 주의할 점은 신호의 파워를 1 로 정규화 해 줘야 하며 잡음 역시 .. 2011. 3. 27.
MATLAB break, continue 이번 포스팅에서는 루프 문(for, while) 사용시의 제어를 위한 keyword 인 break 와 continue 에 대해 설명 드립니다. 보통 if 문 안에 써서 특정 조건 일 때 루프를 멈추게 하거나 또는 건너뛰게 할 때 이용합니다. break 는 루프 문의 동작을 멈추는 기능을 합니다. 다음 코드를 실행해 보면 for k=1:5 if k==3 break end fprintf('%d\n',k) end 1, 2 만 출력이 되고 k = 3 일 때 break 명령에 의해 for 루프를 빠져 나오게 됩니다. 루프 문 안에 또 루프 문이 있는 nested 루프의 형태에서 break 를 이용할 경우에는 break 를 둘러 싸고 있는 루프문 하나만 빠져 나오게 됩니다. continue 문은 특정 루프를 건너 .. 2011. 3. 26.
MATLAB piecewise 수식 표현 MATLAB 을 이용하여 그림과 같은 piecewise 식을 나타내 보자. 이러한 piecewise 식은 비교 연산자와 논리 연산자를 이용하면 매우 간단하게 표현이 가능하다. 위 그래프에 대한 식은 다음과 같다. 위 식을 y = my_piecewise(t) 라는 함수로 표현해 보자. 위 그림의 오른쪽의 빨간색 네모 칸 친 부분 처럼 각각의 조건을 비교 연산( 2011. 3. 26.
MATLAB global keyword MATLAB 의 함수 내부의 변수 값들은 함수가 사용된 이후에는 자동으로 메모리 상에서 없어진다. 하지만 같은 변수를 다른 함수 또는 파일에서도 이용하려는 경우 함수 내부에서 변화된 값이 계속 남아 있게 해야 하는 경우가 있다. 이러한 경우 global keyword 를 이용한다. global 은 하나의 변수를 여러 파일에서 이용하기 위해서 사용한다. global keyword 의 이용 방법은 변수 사용 전에 선언을 해 주고 사용해야 한다. 다음과 같이 예를 들어 보자. 위 예에서 global_test.m 파일에서 변수 a 값을 my_func() 함수에서도 이용하고 함수 내부에서 a 값을 변경했다. 그리고 global_test.m 파일에서 my_func() 사용 전과 사용 후의 a 값이 다음과 같이 달라.. 2011. 3. 26.
MATLAB Tex character 수학 기호 넣기 MATLAB 이용시 그래프 또는 command 창에 text 출력시 수학 기호등을 넣고 싶을 때가 있다. 다음 예는 sin 그래프를 그리고 x 축과 y 축에 θ 라는 특수 기호를 넣었다. MATLAB 에서 이런 특수 기호를 넣기 위해서는 위 코드에서 보는 것처럼 \character 형태로 입력해 줘야 한다. 아래 표를 참조하면 원하는 기호를 넣을 수 있을 것이다. Reference : MATLAB HELP 2011. 3. 25.
MATLAB Rayleigh random variable 생성 Gaussian r.v.(random variable)을 이용하여 rayleigh r.v. 을 생성하고 그 PDF 및 CDF 를 구해 보자. rayleigh random variable 에 대해서는 다음 포스팅을 참조 2009/12/26 - [수학] - Rayleigh PDF PDF 및 CDF 를 구하는 법에 대해서는 다음 포스팅을 참조 하시길 2011/03/23 - [MATLAB] - MATLAB PDF, CDF, CCDF 서로 독립인 평균이 0 이고 분산(σ2)이 1인 Gaussian r.v. X, Y 를 생성해 보자. rayleigh r.v. Z 는 다음과 같이 발생 시킬 수 있다. 이제 이전 포스팅 에서 설명한 대로 다음과 같이 PDF 를 구해 보자. CDF 는 다음과 같다. 분산이 σ2 인 가우.. 2011. 3. 23.
MATLAB FAST convolution using FFT 이번 포스팅에서는 FFT 를 이용한 고속 convolution 에 대해 알아본다. 일반적으로 conv(x, y) 은 filter() 함수로 구현되는 선형 convolution 이다. 선형 convolution 은 x 또는 y 의 길이가 증가할수록 그 복잡도는 급격히 증가하는 특징이 있다. 이러한 선형 convolution 은 순환(Circular) convolution 을 이용하여 구현이 가능하며, 순환 convolution 은 FFT(Fast Fourier Transform) 와 IFFT(Inverse Fast Fourier Transform)를 이용하여 구현이 가능하다. 일단 선형 convolution 을 순환 convolution 으로 변환하는 과정에 대해 살펴 보자. x=[1 2 3 4] y=[1.. 2011. 3. 23.
MATLAB random number 생성 이번 포스팅에서는 MATLAB 에서 기본으로 제공하는 각종 random number 의 생성 방법에 대해 알아본다. MATLAB 에서도 rand() 함수는 uniform random number 를 발생 시킨다. rand() 함수는 0에서 1 사이 값을 발생 시킨다. 이를 이용하여 다양한 범위의 uniform random number 를 발생 시킬 수 있다. a ~ b 사이의 n행 k열 uniform random number 를 발생시키는 방법은 다음과 같다. Uniform_rand = a + (b-a).*rand(n, k); 예를 들어 -10 ~ 5 사이의 4행 5 열 의 uniform random number 를 발생 시키려면 다음과 같이 하면 된다. 다음으로 정규 분포라 불리는 Gaussian ra.. 2011. 3. 23.
MATLAB PDF, CDF, CCDF 이번 포스팅에서는 각종 랜덤 값들을 이용한 PDF(Probability Density Function), CDF(Cumulative Distribution Function), CCDF(Complementary Cumulative Distribution Function) 를 그리는 방법에 대해 살펴 보려 합니다. PDF 를 나타내는 방법에 대해 모르시는 분들은 다음 포스팅을 참조하시길 ~ 2010/01/03 - [programming language/MATLAB] - MATLAB PDF (Probability Density Function) 평균이 2 이고 분산이 10 인 가우시안 잡음을 생성해 보겠습니다. 평균이 2 이므로 +2 를 하고 분산 값이 10 이므로 sqrt(10) 을 곱해 주게 됩니다. 이제.. 2011. 3. 23.
MATLAB 함수 만들기, inline, function handle 어느 컴퓨터 언어나 반복되는 부분은 함수화 하기 마련 입니다. MATLAB 도 예외는 아니죠. 이번 포스팅에서는 MATLAB 에서 함수 작성 방법에 대해 알아보도록 하겠습니다. MATLAB 에서는 함수를 만들 수 있는 방법이 3 가지 정도 됩니다. 첫 번째로는 함수 파일을 만드는 방법이고, 두 번째로는 inline() 객체를 이용하여 함수화 하는 방법, 세 번째로는 function handle 을 이용하는 방법 입니다. 함수 파일을 만드는 방법부터 설명 드리도록 하겠습니다. 예를 들어 설명해 보죠. a, b 라는 두 값을 입력 받아서 그 합과 차를 출력하는 함수를 만들어 보도록 하죠. 함수는 function 이라는 키워드를 먼저 써줘야 합니다. 그리고 다음 그림과 같이 구성을 합니다. 함수 이름은 fun.. 2011. 3. 21.
MATLAB cross product, 삼각형의 면적, 평행 육면체의 부피 MATLAB 의 cross product함수로 cross() 라는 함수를 제공합니다. 본 함수는 cross(A,B) 형태로 이용을 하며 A,B 는 인자가 3개 여야 합니다. 그렇지 않으면 에러가 납니다. 보통 cross product(외적) 는 x 기호로 나타내고 dot product (내적) 은 점(∙) 기호로 나타냅니다. 일단 그 수학적인 정의에 대해 살펴 보겠습니다. 벡터 A= 이고 벡터 B = 인 경우 cross product 는 A x B 로 표현이 되고 dot product 는 A ∙ B 로 표현이 되며 그 결과는 다음과 같습니다. A x B= = A ∙ B= cross product 는 몇 가지 특징이 있습니다. A x B 는 A, B 에 직교 합니다. 즉 A,B 에 의해 이루어 지는 면적에.. 2011. 3. 21.
MATLAB input() 이번 포스팅에서는 input() 함수에 대해 설명해 보겠습니다. input() 함수는 말 그대로 사용자로부터 입력을 받는 함수 입니다. 사용 방법은 매우 간단합니다. >> A=input('입력해 주세요: ') ; 입력해 주세요: 12 >> A A = 12 다음과 같이 벡터도 입력 가능 합니다. >> A=input('입력해 주세요: ') ; 입력해 주세요: [1 2 3] >> A A = 1 2 3 그럼 다음과 같이 좀 엄한 값을 한번 넣어 보죠. >> A=input('입력해 주세요: ') ; 입력해 주세요: T ??? Error using ==> input Undefined function or variable 'T'. 입력해 주세요: 그럼 위 결과처럼 라는 부분이 다시 나오게 됩니다. 여기서 T 라는 값.. 2011. 3. 21.