2.Дьяконов В.П. Справочник по MathCAD PLUS 6.0 PRO. - М.: СК-Пресс, 1997.
7-Лабораториялық сабағы.
Тақырыбы: MatLab-та сызықты, сызықты емес теңдеулерді шешу, туындыны және интегралды есептеу
Функция шақырылған жалпы параметрлер санын тексеруге болады. Осы мақсат үшін Matlab жүйесінде nargin атымен айнымалы көрсетілген. Оның мәні болып аргумент мөлшері табылады. Онда параметр санына тексеру келесі түрде орындалады:
if nargin~=3
error (‘Bad numbr of parameters’)
end
Matlab жүйесінде nargout айнымалысы да қараытырылған. Мысалы,
[s1, s2, s3]=MatrProg1(X1, X2, x)
үш қайтару мәнін алады.
MatrProg1 функция шақыруын жүзеге асыру үшін және пайдаланушыға сандардың сәйкес келмеуін ескертіп функция денесінде nargout айнымалысын келесі түрде көрсетуге болады:
if nargout ~=2
error(‘Must be 2 return values’)
end
Функцияны тек кіру параметрінің санымен және қайтару мәнімен шақыруға болады. Біз алдында кіру параметрінің әр түрлі санымен шақырылған Matlab жүйесіндегі салынған функциялармен кездескенбіз. Онда мысалға plot функциясы функция графигінің салыну атымен жүзеге асқан болатын.
М-функцияны өңдеуде әр түрлі кіру аргументінің санында көп нұсқаулы жұмыс мүмкіндігі бар; оларды санын тексеру кезінде көрсету және жұмысты тоқтатудың орнына функцияға әр түрлі орындалуды жүзеге асыру керек.
М-функция мәтінінде бірінші және екінші максимальді санды пайдалану керек.
TestFunc2 функция
Function [res1, res2]=TestFunc2(var1, var2)
Switch nargin
Case 1
If nargout==1, res1=var1*2;
Elseif nargout==2, res1=var1*2; res2=var1+3;
Else error (‘Must be 1 or 2 return values’);
End
Case 2
If nargout==1, res1=var.*var2;
Elseif==1, res1=var1.*var2; res2=var1+3;
Else error (‘Must be 1 or 2 return values’);
End
Otherwise error (‘Must be 1 or 2 parameters’);
End
Алдын ала көрсетілген формат шақыруына рұқсат етеді. Қорыта келе дәрежені тексеру функциядан тұрады. Егер М-функция меншік қолдануда жазылса, онда тексеру қатты болуы мүмкін. Қате жағдайлар автоматты түрде осы жүйеде өңделеді және командалық терезеге сәйкес диагностикалық хабарлама береді.
Егер функция сыртқы қажет етуге жақын болса, онда тексерулерді берікті ету керек. Matlab жүйесі санмен жазылған М-функцияны штатты түрде қояды. Осы функциялардың мәтіні командалық терезеге келесі командамен шақырылады.
type имя_функции
кейбір алгоритм функцияның деталін үйренумен қатар, кіру параметрін және шығу мәнін тексеру әдістерін үйренген жөн.
Команданы орындап және енгізіп repmat функциясын қарастырайық:
type repmat
нәтижесінде оның толық мәтінін аламыз:
function B=repmat(A, M, N)
%REPMAT Replicate and tile an array.
% B= REPMAT(A, M, N) replicates and tiles the matrix a
% to produce the M-by-N block matrix B.
%
% B= REPMAT(A, [M N]) produces the same thing.
%
% B= REPMAT(A, [M N P…]) tiles the array a to
% produce a M-by-N-by-P-by-… block array. a can be N-D.
%
% REPMAT(A, M, N), when a is a scalar, is commonly used to
% produce an M-by-N matrix filled with A’s value.
% This can be much faster than A*ONES(M, N)
% when M and/or N are large.
%
% Example:
% repmat(magic (2), 2, 3)
% repmat(NaN, 2, 3)
%
% See also MESHGRID.
%
% Copyright (c) 1984-98 by The MathWorks, Inc.
% $Revision: 1.11 $ $Date: 1997/11/21 23:30:13 $
if nargin<2
error (‘Reguires at least 2 inputs.’)
elseif nargin= =2
if prod(size(M))= =1
siz=[M M];
else
siz=M;
end
else
siz=[M N];
end
if length(A)= =1
% This produces the same answer as B=A(ones(siz));
% but uses less memory.
B=…
Reshape (A(ones(1, siz(1)), ones(1, prod(siz(2:end)))), siz);
Elseif ndims(A)= =2 & length(siz)= =2
[m, n]=size(A);
mind=(1:m)’;
nind=(1:n)’;
mind=mind(:, ones(1, siz(1)));
nind=nind(:, ones(1, siz(2)));
B=A(mind, nind);
Else
Asiz=size(A);
Asiz=[Asiz ones (1, length(siz)-length(Asiz))];
siz= [siz ones (1, length(Asiz)-length(siz))];
for i=length(Asiz):-1:1
ind=(1:Asiz(i))’;
subs{i}=ind(:, ones(1, siz(i)));
end
B=A(subs{:});
end
Ұсынылатын әдебиет:
1.Статистический анализ данных в пакете Mathcad Радченко Т.А., Дылевский А.В, Воронеж, 2004
2.Дьяконов В.П. Справочник по MathCAD PLUS 6.0 PRO. - М.: СК-Пресс, 1997.
8-Лабораториялық сабағы.
Тақырыбы: MatLab-та жаңа функциялар құру, дифференциалдық теңдеулерді шешу
Repmat функциясының мәтіні үйренуге пайдалы. Себебі мұнда эффективті алгоритм шешімі М рет вертикаль бойынша және N рет горизанталь бойынша берілген А матрицасы көрсетілген.
Мысалы, міне repmat функциясының жұмыс істелінуі
4 -сурет
Функцияның жұмыс жасау облысы.
Әрбір М-функциядан Matlab жүйесінің жұмыс істеу облысымен қиылыспайтын жадының қосымша облысы болады. Matlab жүйесімен жұмыс атқарғанда жүйенің жұмыс істеу облысында немесе функцияның жұмыс жасау облысында орналасқан тек айнымалыға ғана жол алуға болады. Егер айнымалы глобальді деп хабарланса, онда оны бірнеше жұмыс жасау облысына тәуелді деп қарастыруға болады. Функцияның шақыруымен nargin және nargout функциялары аргументтерінің кіретін және шығатын сандарын анықтауға мүмкіндік береді. Бұл ақпаратты кейін есептеу жүрісін өзгерту шартты операторында пайдалануға болады.
Мысал:
Достарыңызбен бөлісу: |