제 2 장 프로그램작성기법
>= 크거나같은 관계연산자 관계및논리연산자 MATLAB 논리데이터형식 : 1 은참, 0 은거짓 논리들은관계및논리연산자 / 함수들, 그리고 true 및 false 함수에의하여생성 : >> a = true a = 1 >> b = false b = 0 >> c = 1 c = 1 MATLAB 의관계연산자 : 연산자 의미 == 대등 ~= 같지않음 < 작은 > 큰 <= 작거나같은
논리연산자 스칼라사이의비교 : 관계가참이면논리 1 이, 거짓이면논리 0 이생성 : >> 2 > 3 0 (OR) 연산자의예 : >> 2 3 1 행렬 - 행렬비교 : 해당되는원소쌍들이비교 행렬 - 스칼라비교 : 스칼라가각행렬원소와비교 >> [2 3] < [3 2] 1 0 >> x = -2:2; x >= 0 0 0 1 1 1 >> A = [1 2; 3 4]; B = 2*ones(2); >> A == B 0 1 0 0 >> A > 2 0 0 1 1
x(x >= 0): x 의 0 이아닌원소들만으로구성되는벡터를제시 x = -2:2 이라면 >> x = -2:2; >> x(x >= 0) 0 1 2 논리배열을사용하여다른배열로부터원소들을선택하는경우 : 두배열의크기가같아야 논리배열에서각각의 1 에해당하는원소들이선택되는반면에각각의 0 에해당되는원소들은 선택되지않는다. 배열 A 와 B 의크기가같으면서원소들이서로동일한지를알아보려면 isequal(a,b) 를이용 : >> A = [1 2; 3 4]; B = 2*ones(2); >> isequal(a,b) 0 논리함수 isinf(a): 크기가 A 와같으며 A 의원소가 +, 혹은 - inf 인위치에참 (1) 을포함하고그 렇지않은위치에는거짓 (0) 을포함하는논리배열을반환 >> A = [1 inf; -inf NaN]; >> isinf(a) 0 1 1 0
변수의값에 NaN( 부정치 ), inf( 무한대 ), [ ]( 빈배열, 혹은빈행렬 ) 를인정 이름이 is 로시작되는 MATLAB 내장논리함수 : 논리 is* 함수 기능 ischar char 배열 ( 문자열 ) 인지를테스트 isempty 빈배열인지를테스트 isequal 배열들이서로동일한지를테스트 isfinite 유한배열원소들을검지 isfloat 부동소수점배열 (single, 혹은 double) 인지를테스트 isinf 무한배열원소들을검지 isinteger 정수배열인지를테스트 islogical 논리배열인지를테스트 isnan NaN 배열원소들을검지 isnumeric 수치배열 ( 정수, 혹은부동소수점 ) 인지를테스트 isreal 실수배열인지를테스트 isscalar 스칼라배열인지를테스트 issorted 정렬된벡터인지를테스트 isvector 벡터배열인지를테스트
A 가허수부분을갖지않는다면 isreal(a) 은참 A 가허수부를갖는지의여부를결정 : >> a = 1; >> b = complex(1,0); >> c = 1+0i; >> [a b c] 1 1 1 >> [isreal(a), isreal(b), isreal(c)] 1 0 1 논리연산자 : 연산자 & && 의미 논리 and 단락 ( 短絡 ) 논리 and 논리 or 단락 ( 短絡 ) 논리 or ~ 논리 not xor all any 배타적논리 or 벡터의모든원소들이 0 이아니면참 벡터의임의의원소가 0 이아니면참
&, 및 ~ 연산자 : 인수들가운데하나가행렬이면논리 0 과논리 1 들의행렬을생성 all 함수를벡터에적용 : 그벡터의모든원소들이 0 이아니면 1 을, 그렇지않으면 0 을반환 any 함수 : 모든 을 임의의 로바꾸어 all 함수와동일하게정의 >> x = [-1 1 1]; y = [1 2-3]; >> x>0 & y>0 0 1 0 >> x>0 y>0 1 1 1 >> xor(x>0,y>0) 1 0 1 >> any(x>0) 1 >> all(x>0) 0 xor: xor(a,b) 와같이함수로호출
&& 와 : 스칼라표현에대해서만작용, & 이나 보다우선적으로사용 >> any(x>0) && any(y>0) 1 >> x>0 && y>0??? Operands to the and && operators must be convertible to logical scalar values. expr1 && expr2 에서 expr1 이거짓이면 expr2 는평가되지않는다. expr1 expr2 에서 expr1 이참이면 expr2 는평가되지않는다.
산술, 관계및논리연산자들의우선순위 : 우선순위 연산자 1( 가장높음 ) 괄호 () 2 전치 (. ), 거듭제곱 (.^), 켤 fp 복소수전치 ('), 행렬의거듭제곱 (^) 3 단항 +, 단항 -, 논리부정 (~) 4 곱 (.*), 오른쪽나누기 (./), 왼쪽나누기 (.\), 행렬곱 (*), 행렬오른쪽나누기 (/), 행렬왼쪽나누기 (\) 5 더하기 (+), 빼기 (-) 6 콜론연산자 (:) 7 작은 (<), 같거나작은 (<=), 큰 (>), 같거나큰 (>=), 동일한 (==), 같지않은 (~=) 8 논리 and (&) 9 논리 or ( ) 10 논리단락 and (&&) 11( 가장낮음 ) 논리단락 or ( )
행렬의경우 all 로부터 all 이각열에적용된결과를포함하는행벡터가생성 all(all(a==b)): 행렬 A 와 B 가동일한것인지의여부를시험하는하나의방법 any(any(a==b)): A 와 B 가임의의동일한원소들을갖는경우 1 의값을가지며그렇지않으면 0 find: 벡터의 0 이아닌원소들에해당하는지수들을반환 >> x = [-3 1 0 -inf 0]; >> f = find(x) f = 1 2 4 find 의결과는다시그벡터의원소들을추출하는데에사용가능 : >> x(f) -3 1 -Inf find 를이용한유한원소의획득 : >> x = [-3 1 0 -inf 0]; >> x(find(isfinite(x))) -3 1 0 0 음의성분들을 0 으로대체 : >> x(find(x < 0)) = 0 x = 0 1 0 0 0
find 를이용하여 B 의해당되는위치의원소들보다작은 A 의원소들에 0 을설정하는방법 : >> A = [4 2 16; 12 4 3], B = [12 3 1; 10-1 7] A = 4 2 16 12 4 3 B = 12 3 1 10-1 7 >> f = find(a<b) f = 1 3 6 >> A(f) = 0 A = 0 0 16 12 4 0
4 가지흐름제어구조 : if, for, while, switch if 문 프로그램흐름의제어 가장간단한형태 : if ( 조건 ) ( 문장 ) end if 문장다음에다른문장이더이어지면콤마를이용하여 if 를그다음문장과분리 : if x > 0, x = sqrt(x); end ( 조건 ) 이거짓일경우에만수행되는문장 : else 다음에위치 v = exp(1); if 2^v > v^2 disp('2^v is bigger') else disp('v^2 is bigger') end
elseif 를이용하여하나, 혹은그이상의조건들을추가 (else 와 if 사이에빈칸이없어야한다 ): if isnan(x) disp('not a Number') elseif isinf(x) disp('plus or minus infinity') else disp('a floating point number') end for 루프 간략하고빠른코드의작성에관심이있는프로그래머 : 가능한한 for 루프의사용을회피 for ( 변수 ) = ( 표현 ) ( 문장 ) end 대괄호를사용한 ( 표현 ) 의정의 : >> for x = [pi/6 pi/4 pi/3], disp([x sin(x)]), end 0.5236 0.5000 0.7854 0.7071 1.0472 0.8660
(i,j) 원소가일때 i/j 인 5 x 5 행렬 A 를생성 : n = 5; A = eye(n); for j = 2:n for i = 1:j-1 A(i,j) = i/j; A(j,i) = i/j; end end continue 는 for 루프의나머지문장들을그냥지나치게하여루프의수행을즉시다음번반복단계로이동 5 에서 10 까지의정수들만을나타내어주는예 : for i = 1:10 if i < 5, continue, end disp(i) end
while 루프 형태 : while ( 표현 ) ( 문장 ) end ( 표현 ) 이참인한 ( 문장 ) 이수행 0 이아닌가장작은부동소수점수를근사하는보기 : x = 1; while 1 xmin = x; x = x/2; if x == 0, break, end end xmin xmin = 4.9407e-324 break 로종료 : 프로그램의제어를해당되는 end 다음의첫번째문장으로전달 while 1,..., end 와같은무한루프의형성 : 루프의처음부분에수행중단테스트를두는것이 편리하지않을경우에유용 break 는 for 루프의중단에도사용가능 중첩된루프에서 break 는바로윗단계의루프로옮겨가도록하여준다.
while 을사용한무한수열의합 : % infsum.m : 무한수열의합 n = 1; oldsum = -1; newsum = 0; while newsum > oldsum oldsum = newsum; newsum = newsum + n^(-4); n = n + 1; end newsum 이파일의수행결과 : >> infsum newsum = 1.0823
switch 문 switch 제어구조 : switch ( 표현 ) 다음에일련의 case ( 표현 ) ( 문장 ) 들이이어지는것으로구성 경우에따라 otherwise ( 문장 ) 과 end 로종료 switch 의 ( 표현 ) 이평가되고그결과와부합되는첫번째 case ( 표현 ) 다음의 ( 문장 ) 이수행 case 들가운데어느것도평가결과와부합되지않으면 otherwise 다음의 ( 문장 ) 이수행 입력에대하여세가지경우들을구별하는예 : function y = count(x) switch x case 1 y = 'one' case 2 y = 'two' otherwise y = 'many' end 세가지 p 값에대하여벡터 x 의 p- 놈 (norm)( 즉 norm(x,p)) 을계산하는예 : switch p case 1 y = sum(abs(x)); case 2 y = sqrt(x'*x); case inf y = max(abs(x)); otherwise error('p must be 1, 2 or inf.') end
case 다음의 ( 표현 ) 은괄호로싸인값들의목록 : switch 의 ( 표현 ) 은목록의임의의값과대조 : x = input('enter a real number: '); switch x case {inf,-inf} disp('plus or minus infinity') case 0 disp('zero') otherwise disp('nonzero and finite') End case 그룹표현이일단부합되고문장이수행되면흐름의제어는 switch 후의첫번째문장으 로이동 - break 문장의사용은불필요
셀 셀과구조체 배열의배열 로서셀배열의원소들은각기다른데이터형식과다른크기를가질수있다. 명령어 cell 은빈셀배열을생성 셀배열의생성 : 소괄호나중괄호를이용 >> A(1,1) = {' 박영수 '}; A(1,2) = {2008011254}; >> A(2,1) = {' 김철수 '}; A(2,2) = {2008010231}; >> A A = ' 박영수 ' [2.0080e+009] ' 김철수 ' [2.0080e+009] >> A{1,1} = {' 박영수 '}; A{1,2} = {2008011254}; >> A{2,1} = {' 김철수 '}; A{2,2} = {2008010231}; >> A A = {1x1 cell} {1x1 cell} {1x1 cell} {1x1 cell}
celldisp 함수 : 셀배열의내용을확인 >> celldisp(a) A{1,1}{1} = 박영수 A{2,1}{1} = 김철수 A{1,2}{1} = 2.0080e+009 A{2,2}{1} = 2.0080e+009 cellplot 함수 : 셀배열을그림으로보여주는함수 >> cellplot(a)
2 x 2 셀배열을설정하는보기 : >> C = {1:3, pi; magic(2), 'A string'} C = [1x3 double] [ 3.1416] [2x2 double] 'A string' 셀배열원소의획득 : >> C{2,1} 1 3 4 2 >> C{2,1}(1,2) 3 구조체 C 와같은프로그램언어들에서의구조체 (structure) 와유사 배열의원소들에이름을붙일수있으며원소들은각기다른형태와크기를가질수있다. 구조체를만드는한가지방법 : struct 를사용 >> sa = struct('data', [1 4 9 16 25], 'description', 'perfect squares') sa = data: [1 4 9 16 25] description: 'perfect squares'
필드 에접속 : sa.data 와같이배열의이름과필드의이름을타이프하고이들사이를마침표로구분 >> sa = struct; >> sa.data = [1 4 9 16 25]; >> sa.description = 'perfect squares' sa = data: [1 4 9 16 25] description: 'perfect squares' 구조체의배열 : 데이터베이스등을관리할때편리 보기 : name", 'ID", "mark" 와같은 3 개의필드를가지며원소가 30 개인 student 구조체배열의생성 >> student(30) = struct('name',' 이영수 ','ID',2008012316','mark',[87 98 76 90]); >> student(2) name: [] ID: [] mark: [] >> student(5).name = ' 김철수 ' student = 1x30 struct array with fields: name ID mark
cell2struct 와 struct2cell: 셀배열과구조체간의전환을수행 num2cell: 주어진수치배열과같은크기의셀배열을생성 동적구조체의보기 : marks 는 4 회에걸친학생들의시험성적을나타내는구조체 >> marks.lee_youngsoo.test(1:4) = [87 98 76 90]; >> marks.hong_killdong.test(1:4) = [96 91 88 75]; >> marks.park_kiyoon.test(1:4) = [90 87 69 94]; 함수 M- 파일 testmark.m 은입력된학생에대한평균점수를계산 : % testmark.m: Dynamic structure 의사용예 function avg = testmark(marks,student,first,last) for i = first:last scores(i) = marks.(student).test(i); end avg = sum(scores)/(last-first+1); 수행결과 : >> testmark(marks,'park_kiyoon',1,4) 85 >> testmark(marks,'lee_youngsoo',1,4) 87.7500 >> testmark(marks,'hong_killdong',2,3) 89.5000
구조체를이용한데이터베이스의생성 : 각지역의기상측정시각과온도 ( 데이터표현의보기 >> meteo = struct('city',{' 서울 ',' 대전 ',' 부산 '},... 'Time',{9 10 12},... 'Temperature',{27 29 31},... 'Pressure',{1013.2 1013.5 1013.1}) meteo = 1x3 struct array with fields: City Time Temperature Pressure >> meteo(1) City: ' 서울 ' Time: 9 Temperature: 27 Pressure: 1.0132e+003 >> meteo(3) City: ' 부산 ' Time: 12 Temperature: 31 Pressure: 1.0131e+003 ) 및압력 (mmbar)
문자열 문자열이나문자배열 (char 배열 ): MATLAB 에서내부적으로해당되는 ASCII 값들에의하여나타나는문자들의배열 >> s = 'ABCabc' s = ABCabc >> sd = double(s) sd = 65 66 67 97 98 99 >> s2 = char(sd) s2 = ABCabc 2 차원문자배열 : 대괄호를이용하여생성 >> subjects = ['Chemistry';'Physics '] subjects = Chemistry Physics
char 함수 : 문자배열의생성에이용 >> W = char('kinetic energy','potential energy', 'Momentum',' 질량 ') W = Kinetic energy Potential energy Momentum 질량 텍스트데이터를셀배열로저장 : >> S = {'Kinetic energy';'potential energy'; 'Momentum';' 질량 '} S = 'Kinetic energy' 'Potential energy' 'Momentum' ' 질량 ' 문자배열을셀배열로, 혹은문자의셀배열을문자배열로자유로이전환 : >> S = cellstr(w); >> W = char(s); 문자열의각문자는 2 바이트를차지 문자열을 double 배열로전환 : 각원소당 8 바이트를차지하는 ASCII 값들의배열이생성
int2str, num2str, 혹은 sprintf 들을이용하여수치변수값들의포맷을변형시켜문자열을생성 >> v = sin((1:3)*pi/6) v = 0.5000 0.8660 1.0000 >> num2str(v) 0.5 0.86603 1 >> q = reshape(1:9,3,3) q = 1 4 7 2 5 8 3 6 9 >> int2str(q) 1 4 7 2 5 8 3 6 9 >> size(ans) 3 7 >> num2str(pi,2) % 자릿수를지정 (2 자리 ) 3.1 >> num2str(pi,15) 3.14159265358979 >> num2str(pi,'%12.5e') % 출력포맷을지정 3.14159e+000
함수 sprintf 는보통포맷지정자와함께사용 여러가지포맷형태에따른 sprintf 출력 : sprintf 와포맷지정자 출력 sprintf('%d',round(pi)) 3 sprintf('%d',pi) 3.141593e+000 sprintf('%s','hello') hello sprintf('the array is %dx%d.',4,5) The array is 4x5. sprintf('\n') ( 줄마침문자 ) 문자열의명령어이용 : >> str = 'sin'; >> t = linspace(0,2*pi); >> q = feval(str,t); >> plot(t,q) 1 0.8 0.6 0.4 0.2 0-0.2-0.4-0.6-0.8-1 0 1 2 3 4 5 6 7
strcat 함수 : 두문자열들을보다긴하나의문자열로연결 >> strcat('hello',' world') Hello world >> ['Hello ' 'world'] Hello world strcmp: 두문자열들을서로비교 - strcmp(s,t) 로부터는 s 와 t 가동일하면 1( 참 ), 그렇지않으면 0( 거짓 ) 이반환 strcmpi: 대문자와소문자를대등한것으로간주 >> strcmp('matlab6','matlab7') 0 >> 'Matlab6'=='Matlab7' 1 1 1 1 1 1 0 관계연산자 : 길이가같은문자열들만을비교하는데에사용. 어떤문자가서로일치하는지를보여주는논리벡터를반환 하나의문자열이다른문자열에포함되는지를테스트하려면 findstr 을이용 : findstr(s,t) 는더짧은문자열이그보다긴문자열속에나타나는위치들의지수들로이루어지는벡터를반환 : >> findstr('bc','abcd') 2 >> findstr('abacad','a') 1 3 5
주어진문자열에서빈칸과글자를구분 : >> S = 'I go now'; >> isspace(s) 0 1 0 0 1 0 0 0 >> isletter(s) 1 0 1 1 0 1 1 1 strrep: 하나의문자열을다른문자열로대체, 하나의문자를빈칸으로대체 >> S = 'I go now'; >> strrep(s,'go','am') % go 를 am 으로대체 I am now >> strrep(s,'go','eat snakes') I eat snakes now >> strrep(s,'o','e') % o 를 e 로대체 I ge new >> strrep(s,'o',' ') % o 를빈칸으로대체 I g n w
다차원배열 다차원배열 : 행렬의경우와유사하게정의하고처리 불규칙정규숫자들의 3 x 2 x 2 배열 >> A = randn(3,2,2) A(:,:,1) = 1.5550-0.5901-0.5399 0.0253 2.0988 0.7866 A(:,:,2) = -0.2387 1.1912 1.6929 0.1464-0.1882-1.6969 기존의 2 차원배열에서원소들에고차원요소를할당함으로써차원을확장 >> B = [1 2 3; 4 5 6]; >> B(:,:,2) = ones(2,3) B(:,:,1) = 1 2 3 4 5 6 B(:,:,2) = 1 1 1 1 1 1
ndims: 차원의수를확인 size: 각차원의원소들의수를반환 >> ndims(b) 3 >> size(b) 2 3 2 cat: 한문장에서원소들을나열하여다차원배열을구성 - 이함수에대한첫번째인수 ( 아래 보기에서 3) 는나머지인수들로이루어지는배열들이연결되는차원을지정 : >> C = cat(3,[1 2 3; 0-1 -2],[-5-3 -1; 10 5 0]) C(:,:,1) = 1 2 3 0-1 -2 C(:,:,2) = -5-3 -1 10 5 0 원소각각에작용하는함수 : 연산, 논리, 그리고관계연산자들과마찬가지로다차원배열에적용
예 : B-ones(size(B)), B.*B, exp(b), 2.^B, 그리고 B > 0 들로부터는모두예상되는결과들이반환 >> sum(b) ans(:,:,1) = 5 7 9 ans(:,:,2) = 2 2 2 >> sum(b,3) 2 3 4 5 6 7 다차원배열의처리를수행하는함수 : 함수 cat ndims ndgrid permute ipermute shiftdim squeeze 기능배열들을연결차원들의수다차원함수들과안짐작을위한배열을생성배열차원을순열배열차원을역순열차원을전이단독차원을제거
global 변수 스크립트 M-파일변수 : Workspace( 작업공간 ) 에기억되어명령어창, 스크립트 M-파일내에서모두구별하지않고사용 함수 M-파일에서사용되는변수 : 작업공간에남지않으며함수내에서작업공간에있는변수를참조불가 함수내에서작업공간의변수를자유롭게읽어내어사용하고싶은경우 : 그변수를 global 변수라고선언 global 변수의선언 : 작업공간과함수 M-파일두부분에서모두선언 global x y
Persistent 변수 함수내에서만내부적으로변수값을유지하고싶은경우 : 그변수를 persistent 변수로선언 persistent 키워드는 C 언어등의 static 변수와같은기능을수행 persistent 선언 : 사용하는함수내에서만수행 persistent 변수의초기치는함수내에변수가정의되어있는지의여부로판단 구체적으로는 isempty 함수에의해판별 persistent x y if(isempty(x)) x=0; end
입력및출력인수의분석 사용자는자신의 M- 파일들에서명령어 nargin, nargout, varargin, varargout 들을사용하여다 양한수의입력및출력인수들을처리 다른형태의입력인수들을처리하기위해 isnumeric, ischar 등과같은명령어들을사용가능 함수 M- 파일이수행되면함수 nargin 과 nargout 은각각명령어라인에서지정된입력및출 력인수들의수를제시 nargin 사용의예시 : function s = add(x, y, z) if nargin < 2 error(' 적어도두개의입력인수들이필요함.') end if nargin == 2 s = x + y; else s = x + y + z; end 더많은수의가능한입력의허용 : varargin 을이용 function s = add(varargin) s = sum([varargin{:}]);
이예에서모든입력인수들은셀배열 varargin 에할당 varargin{:}: 콤마로구분되는입력인수들의목록을구성 입력가운데어떤것이수치값을갖지않으면오류메시지가 display: isnumeric 을사용 function s = add(varargin) if ~isnumeric([varargin{:}]) error(' 입력들은부동소수점수이어야한다.') end s = sum([varargin{:}]);
프로그램의편집 Command Window 에서의편집 명령어라인, 혹은편집창에서프로그램이두줄이상으로길어질경우세개의마침표 (...) 를 이용하여프로그램을여러줄로이어작성 : >> x = 1 + 1/2 + 1/3 + 1/4 + 1/5 +... 1/6 + 1/7 + 1/8 + 1/9 + 1/10 x = 2.9290
명령어창에서의편집키와명령어 : 키 대등한제어키 기능 위쪽화살표 () Ctrl-p 이전라인을호출 아래쪽화살표 () Ctrl-n 다음라인을호출 왼쪽화살표 () Ctrl-b 한글자뒤로이동 오른쪽화살표 () Ctrl-f 한글자앞으로이동 Ctrl 왼쪽화살표 Ctrl-l 한단어왼쪽으로이동 Ctrl 오른쪽화살표 Ctrl-r 한단어오른쪽으로이 동 Home Ctrl-a 라인의시작부분 End Ctrl-e 라인의끝부분 Esc Ctrl-u 라인지우기 Del 뒤로가기 (backspac e) Insert Shift-home Shift-End Ctrl-d Ctrl-h Ctrl-k 커서가있는글자를삭제이전글자를삭제라인끝부분까지삭제삽입모드로전환라인시작부분까지선택라인끝부분까지선택
배열편집기 MATLAB 작업창의왼쪽에서 Workspace 탭을누른다음편집을원하는변수이름을두번클릭 : Array Editor( 배열편집기 ) 창에해당변수에대한스프래드쉬트형태가 display 혹은 openvar('a') 를입력 : A에대한 Array Editor가호출 변수의저장과호출 변수들의저장 : save filename 을입력 이와달리 File-Save Workspace As 메뉴옵션을선택가능 변수 A 와 x 만을저장 : >> save filename A x load filename: filename.mat 으로부터변수들을호출 MAT- 파일 : 다른컴퓨터시스템에서수행되는 MATLAB 들사이에서주고받을수있다. 가져오기함수들에대한그래픽접속기 : File-Import Data 메뉴옵션, 혹은 uiimport 를입력하 여접근할수있는 Import 마법사 보고서에삽입하기위한 MATLAB 출력의확보 : diary 를이용 diary filename: 모든이어지는입력및텍스트출력이지정된파일에복사
diary 기능의제거 : diary off disp: 변수의이름이나 ans 가나타나지않고변수나표현의값을프린트 >> A = eye(2); disp(a) 1 0 0 1 >> disp('result:'),disp(1/7) Result: 0.1429 운영체제와의접속 컴퓨터운영체제와작용하기위한명령어 : cd( 디렉토리바꾸기 ), copyfile( 파일복사 ), mkdir( 디 렉토리만들기 ), pwd( 작업디렉토리를프린트 ), dir 이나 ls( 디렉토리목록 ), delete( 파일지우기 ) 명령어앞에느낌표 (!): 운영체제로이동 예 :!emacs myscript.m 를입력하면 Emacs 편집기를이용하여 myscript 를편집가능
정보찾기 정보제공명령어 : 명령어 bench demo info ver version whatsne w 제공정보및기능사용자의컴퓨터속도를테스트하기위한견주기 (benchmark) 실증프로그램모음 The MathWorks 사에대한정보 MATLAB 및툴박스들의버전및발매일자 MATLAB의버전및발매일자 whatsnew는 Help 탐색기에서발매공고문을불러온다. whatsnew matlab은 MATLAB에대한 readme 파일을보여주는데이파일에서는가장최근버전에도입된새로운기능들을설명하여준다. whatsnew toolbox는지정된툴박스에대한 readme 파일을보여준다.