12024 IMG28 (4)

12024 IMG28 (4)



146____Programowanie w MATLABi

A

dlsp(['11czba elementów-' num2str(Hczba)3) fclose(fld):

Po pomyślnym otwarciu pliku, którego nazwę podaje się z klawiatury, dokonuj! się odczytu pierwszej linii w pliku za pomocą fgetl. Odczytu i wypisania elementów macierzy zapisanej w pliku dokonuje fscanf.

fgetl czyta wiersze w pliku bez uwzględniania znaku zmiany wiersza. Jeżeli poJ lecenie to zostanie wykorzystane zgodnie ze składnią:

treśćjwiersza = fgetl (fid)

to zachodzi zwracanie następnego wiersza (bez znaku końca wiersza) pliku identyfj kowanego przez fid (fid jest zwracane przez fopen). Jeżeli zostanie osiągnięty koniej pliku, to zwracane jest -1. fgetl jest przeznaczone do stosowania tylko z plikami teki stowymi.

fscanf powoduje odczyt sformatowanych danych z pliku. Może ono posiadać na-1 stępującą składnię:

[A, ilość] = fscanf(fid, format, wymiar)

Zastosowanie fscanf z taką składnią powoduje odczyt danych z pliku, który posiada iden-j tyfikator fid, dokonuje ich konwersji zgodnie z podanym format-em i zwraca macierz A. 1 ilość jest wyjściowym parametrem opcjonalnym, który zawiera liczbę elementów od-j czytanych efektywnie.

Parametr wymiar jest opcjonalny i określa liczbę elementów, które mogą być odczyl tane z pliku. Jeżeli nie zostanie wyspecyfikowany, oznacza to cały plik. Może przyj! mować następujące wartości:

n - czyta w najlepszym razie n elementów wektora kolumnowego; inf-powoduje odczyt do końca pliku;

[m,n] - odczyt przynajmniej mxn elementów, n może być inf (m natomiast nie), j Znaczenie parametru format jest takie samo jak poprzednio, fscanf jest wektorową wersją polecenia fscanf występującego w języku C.

Ćwiczenie 6

Napisać m-plik, który umożliwia zapis wektora A = 1:5 do pliku binarnego jb.N a następnie odczytuje wartość elementu znajdującego się na szóstej pozycji w pliku.

Rozwiązanie

Zadanie zostało rozwiązane w następującym m-pliku:

X t0206_25 Ustawianie wskaźnika na danej pozycji X w pliku, a następnie odczyt wskazywanej wartości

elear $ format compact f1d«0;

whlle f1d<l

d1sp('Nazwa pliku - może byc wraz ze ścieżka'). NP—1 nput('Podaj nazwę pliku % NP-Nazwa_pl 1 ku [f1d,komun1kat]-fopen(NP,'w');

A-1nput('Podaj dane ’);

A

fwr1te(f1d,A,1 short*):

1f fid— 1

dlsp(komunikat)

eh<t end

fclose(f 1 d);

dlSp(    11    ’ )

dlspCPonowne otwarcie pliku do odczytu')

d1sp('Nac1sn1 j dowolny klawisz')

pause

f1d—fopen(NP, * r');

disp('Ustawien1 e wskaźnika na pozycji 6 Ucząc') dlspCod początku pliku '):d1sp('PoczekaJ');

status-fseek(f1d,6,'bof'): dispCGdzie bedzie wskaźnik ?')

położeni e_wskazn1 ka-ftel 1 (f 1 d) dlspCJaka wartość zostanie odczytana w tej pozycji ?')

odczytana_wartosc-fread(f1d,l, 'short') fclose(fld);

Ćwiczenie to jest opisane w firmowej instrukcji obsługi MATLAB-a Using MATLAli -Computation, Visualization, Programming.

W momencie otwarcia pliku za pomocą fopen jest obsługiwuny wskaźnik pozycji pliku, określający miejsce w pliku, w którym zajdzie następna operacja odczytu lub zapisu. Do sterowania położeniem tego wskaźnika wykorzystywane są następujące polecenia:

fseek - powoduje ustawienie wskaźnika pozycji pliku w określonym miejscu. Składnia polecenia jest następująca:

status = fseek (fid, wartośćjrrzesunięcia, wartość^początkowa)

/iz/jcst liczbą całkowitą zwracaną przez fopen. wartość_przesunięcia jest identyfikowana następująco:

>0 przesunięcie w kierunku końca pliku,

=0 bez zmiany pozycji,


Wyszukiwarka

Podobne podstrony:
IMG25 (4) 140 Programowanie w MATLab Czerwone saki pod Monte Cassino... W tym m-pliku wykorzystano
41556 IMG23 (4) 136 _ _Programowanie w MATLĄb 1 •    zapis danych w pliku o formacie
IMG28 O realizacja podręcznika lub materiału dydaktycznego, a nie podstawy programowej, O brak wiar
Slajd3 (28) Modele programowania równoległego (2/4) 1. Model z wykorzystaniem kompilatorów z równo l
IMG28 i i i 9jefl3a"Ba 1W = IM ii si 2 s - 13 5 el «"2 -3 c e .2, . iiltflssiCHI i ‘li1!!
IMG28 (2) •    Powstają z prekursorów zwanych proplastydami •    Uięk
IMG28 (2) ., jtemefca. .owi*#ctagA ...................... d«.~.    . MCWMffflHrt.. M
IMG70 L Napisz program realizujący: l .Wczytanie z klawiatury "w*k" liczb (typu Inte
IMG75 X. Napisz program realizujący: 1 .Wczytanie z klawiatury "w*kM liczb (typu Integer) jako
IMG77 V. Napisz program realizujący: 1 .Wczytanie z klawiatury "w*k" liczb (typu Integer)
IMG28 Grasica i limfocyty T ■    / krwią docierające limfocyty pre T — osadzają się&
IMG28 Aktywacja układów kurczliwych ■    depolaryzacja błony postsynaptycznęj

więcej podobnych podstron