case 1
disp('1');
case 2
disp('2');
otherwise
disp('other');
*** 복소수 전치
a=[1+i, 2+2i; 3+3i, 4+4i]
a` = 1.0000-1.0000i 3.0000-3.0000i
2.0000-2.0000i 4.0000-4.0000i
a.` = 1.0000+1.0000i 3.0000+3.0000i
2.0000+2.0000i 4.0000+4.0000i
***데이터 저장과 불러오기
% %e, %f, %g 있음, 유효소수점 별로 신경쓰기 싫다면 g가
a=1;
b=0.3;
fprintf('print test : %f %g\n',a,b);
%fprintf('myfile', '%g', x)
%fopen, fread, fwrite, fseek 등
A=[1 2 3; 4 5 6];
save myData.txt A -ascii %-ascii 대신 -tabs 옵션 가능
load myData.txt
A=load('myData.txt')
***변수에 데이터 입력 받기
a = input('enter a value:');
***OS 명령어 실행하기
%명령어 앞에 ! 를 붙여 OS 명령어를 바로 실행시킬 수 있음
!dir
!time
***각종 함수들
%절대값
abs(x)
%올림
ceil(x)
%0을 향하여 가장 가까운 정수로 반올림
fix(x)
%내림
floor(x)
%x에 가장 가까운 정수로 반올림
round(x)
%시간과 날짜
t=clock
fprintf(' %02.0f:%02.0f:%02.0f\n', t(4), t(5), t(6) );
%벡터의 누적합
comsum(1:4)
%dd-mmm-yyyy 형태의 날짜 표시
date
%벡터 x의 원소의 개수
length(x)
%벡터x에서 가장 큰 원소, 작은 원소
max(x)
min(x)
%벡터x 원소들의 평균값
mean(x)
%2^x
pow2(x)
%벡터 x원소들의 곱
prod(x)
%0~1 사이의 랜덤한 난수
rand
%사용자 컴퓨터에서 가장 큰 양의 실수, 가장 작은 양의 실수
realmax
realmin
%x를 y로 나누었을 때의 몫, 나머지값
fix(x/y)
rem(x,y)
%x의 부호, -1,0,1이 나옴
sign(x)
%행렬 a의 행과 열의 수
size(a)
%오름차순으로 벡터x의 원소를 정렬
sort(x)
%n차 파스칼 행렬 생성
pascal(n)
%마정방 사각형 생성
magic(10)
%행렬 관련
A' %A의 전치행렬(transpose)
det %행렬식(determinant)
eig %고유값
expm %행렬 지수, e^A
inv %역행렬
svd %특이치 분해
diag %대각행렬을 생성하거나 추출
fliplr %왼쪽에서 오른쪽으로 열을 뒤집음
flipup %위에서 아래로 행을 뒤집음
rot90 %반시계방향으로 회전시킨다
tril %삼각형 형태의 아래 부분을 뽑아낸다
triup %삼각형 형태의 윗부분 뽑아낸다
*** 0으로 나눠지는 것 피하기, 무한대로 가는 것 피하기
x=x+(x==0)*eps; %x=x+(~x)*eps;
y=sin(x)./x; %x가 0일 때 문제 생김
y=tan(x);
y=y.*(abs(y) < 1e10);
*** 연산자 우선순위
1 ()
2 ^ .^ ' .'(pure transpose
3 +(unary plus) -(unary minus) ~(NOT)
4 * / \ .* ./ .\
5 +(addition) -(subtraction)
6 :
7 > < >= <= == ~=
8 &(AND)
9 |(OR)
***논리 벡터, 함수
%벡터에서 특정 원소 모두 제거하기
a=a(a>0) %0보다 큰 원소만 남기고 모두 제거한다
%만약 x의 어떤 원소라도 0이 아니면(참이면) 스칼라 값 1(참)을 내보냄
any(x)
%만약 x의 모든 원소가 0이 아니면 스칼라 값 1(참)을 내보낸다
all(x)
%a가 작업공간 상의 변수 명이라면 1을 내보냄
exist('a')
%벡터 x의 0이 아닌 원소의 첨자를 포함하는 벡터로 돌려줌
find(x)
a=a(find(a)) %a에서 0인 원소를 모두 제거
find(x>=max(x)) %가장 큰 원소가 하나 이상일 때 그 첨자를 찾는다
%x가 빈 배열(0x0 크기)이면 1, 아니면 0
isempty(x)
%x의 원소가 +Inf, -Inf가 있으면 1, 아니면 0
isinf(x)
%x의 원소 중에서 NaN이 있으면 1, 아니면 0
isnan(x)
x(isnan(x))=[] %x에서 NaN 제거하기
*** menu, GUI
k=0;
while k~=3
k=menu('click on your option', 'do this', 'do that', 'quit');
if k==1
disp('do this...press any key')
pause
elseif k==2
disp('do that... press any key')
pause
end
end;
*** 보간법 (interpolation)
%interp1은 2차원 데이터의 1차원 보간을, interp2는 3차원 데이터의 2차원 보간을 수행
interp1(x,y,x_new)
interp1(x,y,x_new,'linear')
interp1(x,y,x_new,'spline')
polyfit(x,y,n)
No comments:
Post a Comment