Wprowadzenie do MatLab (102)

Wprowadzenie do MatLab (102)



Oto przykład funkcji, która może posiadać dowolną liczbą dwuelemcntowych wektorów i rysuje linię je łączącą: function testvar (varargin) for i = 1:length(varargin)

x(i) = varargin{i} (1) ;    % Indeksowanie macierzy komórek

y(i) = varargin{i}(2);

end

xmin = min(0,min(x)); ymin = min(0,min(y)) ;

axis([xmin fix(max(x))+3,yminfix(max(y)) + 3 ]) plot(x,y)

Napisana w ten sposób funkcja testvar może działać z różnymi listami wprowadzanych danych, na przykład:

testvar{[2 3],[1 5] , [4 8], [6 5], [4 2], [2 3]) testvar([-l 0],[3 -5], [4 2],[1 1])

Ponieważ zmienna varargin przechowuje wszystkie argumenty wejściowe w macierzy komórek, w celu wyciągnięcia danych niezbędne jest zastosowanie indeksowania macierzy komórek. Na przykład y(i) = varargin{i}(2);

Na indeks macierzy komórek składają się dwa wyrażenia:

-    wyrażenie indeksujące komórkę, w nawiasach klamrowych,

-    wyrażenie(-a) indeksujące jej zaw artość, w zwykłych nawiasach.

W linii kodu umieszczonej powyżej, wyrażenie indeksowe {i} oznacza i-tą komórkę zmiennej varargin. Zaś wyrażenie (2) reprezentuje drugi element zawartości tej komórki.

W przypadku, gdy dopuszczamy większą ilość argumentów wyjściowych, musimy umieścić je wszystkie w macierzy komórek varargout. W celu określenia, z iloma argumentami wyjściowymi wywołujemy funkcję, używamy instrukcji nargout. Na przykład, poniższy fragment kodu przyjmuje dane w postaci macierzy złożonej z dw'óch kolumn, gdzie pierwsza kolumna reprezentuje zestaw' współrzędnych x, natomiast druga współrzędne y. Dzieli on tę macierz na dwa oddzielne [xi yi] wektory, które możemy podać funkcji testvar z poprzedniej strony: function [varargout] = testvar2(arrayin) for i = 1:nargout

varargout{i}= arrayin(i,:) % przypisanie macierzy komórek end

Instrukcja przypisania umieszczona wewnątrz pętli for używa składni przypisania macierzy komórek. Po lew-ej stronie tej instrukcji, dotyczącej macierzy komórek, przy indeksowaniu zastosowano nawiasy klamrowe, aby zaznaczyć, że dane mają być umieszczone wewnątrz komórek.

104


Wyszukiwarka

Podobne podstrony:
Wprowadzenie do MatLab (58) współpracuje z nieliniowymi funkcjami zmiennych skalarnych. Funkcje funk
18358 Wprowadzenie do MatLab (58) współpracuje z nieliniowymi funkcjami zmiennych skalarnych. Funkcj
35037 Wprowadzenie do MatLab (85) Oto dwie ważne zasady dotyczące tablic komórek: -   &nbs
Wprowadzenie do MatLab (97) rowanic binarne lub heksadccymalne. Na przykład funkcja dec2hex zamienia
Wprowadzenie do MatLab (100) Zmienna s, wykorzystywana wewnątrz funkcji w funkcji, jak również zmien
Wprowadzenie do MatLab (13) Biblioteka funkcji obsługi programów w językach C i Fortran współpracują

więcej podobnych podstron