본문 바로가기
삽질기초/ETC

MATLAB 이것저것..

by @가을바람 2009. 9. 15.

%for, if
temp = 0;

for n = 1:100
  temp = temp + n; % 1~100까지 합
end


temp1 = 0;
temp2 = 0;

for n = 1:100
    if 0 == rem(n, 2)
        temp1 = temp1 + n; % 짝수 합
    else
        temp2 = temp2 + n; % 홀수 합
    end
end


%switch
X = 0:1:10;

temp = rand; %임의의 수
tmep = rem(temp,2)
switch temp
    case 0
        Y = sin(X);
    otherwise
        Y = cos(X);
end
plot(X, Y);

%while
temp1 = rand;
temp2 = rand;
while 1
    temp = temp1 - temp2;
    if temp < 0
        break;
    end
end
temp

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

A = [ 1 -5 23; -3 5 8; 2 5 -9]
B = [1+1i 2+1i 3+1i
    1+2i 2+2i 2+3i
    3+4i 5+2i 1+1i]
C = 20
X = 0:1:10
Y = sin(X)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

abs_A = abs(A)                              %절대값, 복소수의 크기
angle_B = angle(B)                          %위상각
ans                                         %좌변에 변수가 없을때의 정답. 현재 ans 의 값
atan_C= atan(C)                             %아크 탄젠트
                                            % help에 있는 예제
                                            % x = -20:0.01:20;
                                            % plot(x,atan(x)), grid on
                                            
%axis                                       %그래프에서 각 축의 범위를 변경하고자 할때 사용.
                                            %축의 범위를 변경 후에 다시 그래프를 그려줍니다.
                                            %axis([xmin xmax ymin ymax zmin zmax])
                                            %각 좌표의 범위를 설정, 2차원에서는 zmin, zmax를 제외

%그래프를 그려서 실험. Y 값은 sin(X)로 지정.
figure
plot(X, Y)                                  %plot(X축, Y축)
axis([0 20 -10 5])                          %각 축의 범위가 바뀐것을 볼 수 있다.

%bode -> 표B3                              
clear                                       %작업공간을 깨끗하게 함. 변수들을 지워줌.
%clg                                         %그래프화면을 깨끗하게 함.
computer                                    %컴퓨터 종류를 보여줌. PCWIN이라고 나옴

A= [1+1i 2+1i 3+1i                         %클리어후 다시 변수지정
    1+2i 2+2i 2+3i
    3+4i 5+2i 1+1i]
B = [2 3 6]
C = [1 2 3]
D = [ 1 -5 23; -3 5 8; 2 5 -9]
P = [6 2 5 ; 6 9 8 ; 1 8 7];
conj_A = conj(A)                            %켤레복소수 - 공액복소수
conv_EX = conv(B, C)                        % 곱셈, 콘벌루션
corrcoef_A = corrcoef(A)                     %상관 계수는 공분산(COV(X,Y))을 각각의 표준 편차로 나눈값.
                                            %표준 편차는 한 확률 변수가 어느 정도로 퍼져 있냐는 것
                                            %공분산은 두 확률 변수가 얼마나 상관이 있느냐를 보여줌.
cos_B = cos(B)
cosh_B = cos(cos_B)                         %hyperbolic 코사인
cov_EX = cov(B)                             %공분산 : 편차의 곱, 편차 : 변량에서 평균을 뺀 값, 평균과 떨어진 정도.
deconv_EX = deconv(conv_EX, B)              %다항식 나눗셈 conv_EX / B
det_D = det(D)                              %행렬식,determinant
diag_EX = diag(D)                           %대각선상 이외의 성분이 모두 0인 행렬
eig_D = eig(D)                              %고유벡터
exp_10 = exp(10)                            %지수함수 e
expm_D = expm(D)                            %행렬의 지수함수
eye_EX = eye(4)                             %항등행렬
filter_EX = filter(B, C, D)                  %직접 필터의 구현
format long, pi                              %15진 고정소수점
format long e, pi                            %15진 부동소수점
format short e, pi                           %5진 부동소수점
format short, pi                             %5진 고정소수점
N = 100;
figure
freqs(B, C, N)                              %라플라스 변환의 주파수응답
figure
freqz(B, C, N)                              %z-변환의 주파수 응답
grid                                        %격자선의 표시/미표시
hold                                        %화면에서 현재의 그래프를 유지한채 표시. 같이 보여주는 기능.
E = [i, j,inf]                              %i, 무한수.
imag_A = imag(A)                            %허수부
inv_D = inv(D)                              %역행렬
length_B = length(B)                        %벡터의 크기
E = linspace(1, 100)                        %선형간격의 벡터
figure
plot(1:100, E)
log_3 = log(3)                               %log  
Px = logspace(-1,2);                         %대수간격의 벡터
figure
loglog(Px,exp(Px))                           %로그 로그 x-y 그래프      
log10_10 = log10(10)                         %log10
logm_EX = logm(P)                            %행렬의 대수
lqe(1, 1, 1, 1, 1)                           %선형2차 추정기의 설계  
lqr(1, 1, 1, 1)                              %선형2차 조절기의 설계
max_A = max(A)                               %최대
mean_B = mean(B)                             %평균    
median_C = median(C)                         %중간값
min_C = min(C)                               %최소값
E = NaN                                      %표시할수 없는 수치
E = [0:pi/2:100];
figure
nyquist(sin(E), E)                           %nyquist주파수 응답의 도시
ones(2)                                      %상수
E = pi
figure
plot(10, 10)                                 %선형 xy 그래프
polar(10, 10)                                %극좌표
poly([1, 2, 3])                              %특성 다항식
polyfit(B,C,1)                               %특성 다항식의 추정
polyval(C, 1)                                %다항식 계산
polyvalm(D, 1)                               %행렬다항식의 계산
prod(C)                                      %렬을 곱한다.
%quit 프로그램 종료.
rand_EX = rand(3,3)                         %난수 발생
rank(D)                                     %행렬의 렝크 계산
real_A = real(A)                            %실수부
rem_4_3 = rem(4,3)                          %나머지 -> 1
residue(B, C)                               %부분 분수 확장
%rlocus
roots_C = roots(C)                          %다항식의 근
figure
semilogx(C)                                 %세미로그 x-y 그래프 (x축이 지수)
figure
semilogy(C)                                 %세미로그 x-y 그래프 (y축이 지수)  
sign_D = sign(D)                            %부호
sin_EX = sin(pi/2)                          %sin
sinh_EX = sinh(pi/2)                        %하이퍼블릭 사인
size_A = size(A)                            %열과 행의 차원
sqrt_C = sqrt(C)                            %제곱근
sqrt_D = sqrtm(D)                           %행렬의 제곱근
std_D = std(D)                              %표준편차
figure
step (C, B)                                 %단위계단 응답의 도시
sum_C = sum(C)                              %원소들의 합
tan(10)                                     %탄젠트
tanh(15) % 1
text(200, 200,'임의 위치의 글자')          
title('그래프의 제목')                      
Xlabel('x 축의 라벨')
Ylabel('y 축의 라벨')
trace_D = trace(D)                         %행렬의 trace  
zeros(3,3)
who


clear
%표B1 모델의 변환%
%tf2zp 상태공간을 영점-극점 으로 변환

b = [2 3];
a = [1 0.4 1];
[b,a] = eqtflength(b,a);
[z,p,k] = tf2zp(b,a)

%표B2 시간응답 함수의 해석
%step 단위응답
b = [2 3];
a = [1 0.4 1];
figure
step(b, a)

%표B3 주파수 응답 함수의 해석
%bode bode형 그래프.
a = 0:1:10;
b = sin(a);
figure
plot(a, b)          
bode(b, a)  

%표B4 모델의 성질에 대한 함수들
%damp 감쉬계수 및 고유주파수
a = [1 0.4 1];
damp_a = damp(a)

%표B 사용자그래프에 대한 함수들
%ngrid 자연대수 공간 벡터의 생성
a = 0:10;
b = sin(a);
figure
plot(a, b)          
ngrid

%표B6 시스템의 모델링에 대한 함수들
%rmodel 임의의 연속모델 생성
%drmodel 임의의 이산모델 생성
rmodel_EX = rmodel
dmodel_ex = drmodel

%B7 제어기 및 추정자의 구성함수들
%

%B8 모델차수의 감소에 대한 함수들
% balreal 균형있게 구현
sys = tf(1,[1 0 -1])
balreal(sys)

%표B9 모델의 구현에 대한 함수들
%

%표B10 제어시스템의 설계 함수들
%선형2차 추정기의 설계  
lqe(1, 1, 1, 1, 1)                            

'삽질기초 > ETC' 카테고리의 다른 글

삼각함수 공식.  (0) 2009.09.15
MATLAB 미적.  (0) 2009.09.15
통신사별 DNS주소  (0) 2009.09.09
Gradient, Divergence, Curl ...  (0) 2009.06.05
MATLAB 함수들.  (0) 2009.04.22