c = fwrite(fid, A,'præcision')
Ved denne kommando vil A matricens elementer blive skrevet ud på filen med
identifikator fid, med den nøjagtighed af tallene som angives i
citationstegn istedet for ordet præcision. Det vil sige om der f.eks er tale
om heltal eller reelle tal
og om der er anvendes 8, 16, 32 eller 64 bit til at repræsentere tallet.
fwrite returnere en værdi svarende til antallet af elementer, der med succes er blevet skrevet ud på filen. Her er variablen c sat til at opbevare denne værdi.
Der er en del forskellige måder, hvorpå en computer kan repræsentere tal. Præciseringen af hvordan de binære tal skal repræsenteres er således vigtig for den computer, hvor MATLAB er installeret. Her følger en liste over forskellige angivelser af præcision og hvad de står for. Disse angivelser skrives i stedet for præcision i kommandoen. I MATLABs egen manual (``Reference Guide'') under fread ses en udvidet liste af præcisionsangivleser. Nøjagtighed af tallene har også afgørende betydning for læse-funktionen.
Læse-funktionen fread kan anvendes på to måder, der kan skrives
som![]()
A = fread(fid);
[A, c] = fread(fid, size, 'præcision');
I den simple udgave forsøger fread at læse elementer fra filen med
identifikator fid til en matrix A. Der er ikke sat en præcision for
hvordan tallene er repræsenteret på filen, men default-præcisionen er
uchar, det vil sige tegn uden fortegnsangivelser.
I den udvidede udgave, læses der stadigvæk fra filen med identifikator fid, men her præciseres det yderligere at der skal læses elementer ind i en matrix af størrelse size. Der er tre mulige size former:
For begge funktioner fread og fwrite returneres således en kontrolværdi, der er et udtryk for, hvor godt transmissionen til og fra filen gik. Svarer antallet af læste elementer ikke med det man regnede med at læse ind, kan der være problemer. Måske er filen ikke så lang som man troede, muligvis er der fejl i filen så MATLAB ikke kan læse alle elementerne. Måske er tallene repræsenteret på en anden måde (i det tilfælde kan problemet løses ved at andre præcisionen og så forsøge at læse ind igen). Er der fejl i filen er det nødvendigt at gå tilbage til konstruktionen af filen og løse problemet ad den vej.
For at holde øje med transmission tildeles variablen c kontrolværdien af fwrite-funktionen. B's elementer skal lagres som heltal repræsenteret ved 16 bit. På kommandolinien skrives nu:
c = fwrite(fid, B, 'short')
Her skrive MATLAB matricen B ud på filen og returnerer værdien c = 49. Ialt
49 elementer er læst ud på minfil.dat. Fordi filen er åbnet med
rettigheder 'r+' til både at skrive og læse, kan man allerede nu læse ind
igen fra filen. Ellers ville det være nødvendigt at lukke filen og åbne
den igen med rettighederne sat til at læse. Der skrives nu:
[A, c] = fread(fid,9,'short')
I matricen A indlæses nu en søjlematrix på 9 elementer. Det forklares at
formatet for filen er 'short'. Værdierne for variablene A og c bliver nu:
A =
30
38
46
5
13
21
22
39
47
c =
9
Herefter skal filen minfil.dat lukkes som beskrevet i det forrige
eksempel.