Tham khảo tài liệu it - matlab software (phần 2) part 8, công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
IT - Matlab Software (Phần 2) part 8Phụ lục-Lệnh và hàm 216 [A,COUNT] = FSCANF(FID,FORMAT,SIZE) âoüc dæî liãûutæì tãûp chè âënh båíi danh hiãûu tãûp FID, chuyãønsang chuäùi chè âënh FORMAT, vaì traí vãö ma tráûn A.COUNT laì âäúi säú xuáút tuìy choün âãø traí vãö säúpháön tæí âoüc thaình cäng FID laì mäüt säú nguyãn danh hiãûu tãûp nháûn âæåüctæì FOPEN. SIZE laì tuìy choün; noï âàût mäüt giåïihaûn vaìo säú pháön tæí coï thãø âæåüc âoüc tæì tãûp;nãúu khäng chè âënh thç xem nhæ toaìn bäü tãûp; nãúucoï chè âënh thç caïc âãö muûc håüp lyï laì: N âoüc háöu hãút N pháön tæí vaìomäüt vectå cäüt inf âoüc âãún hãút tãûp [M,N] âoüc M * N pháön tæí láúp âáöy êtnháút mäüt ma tráûn cåî MxN, theo thæï tæû cäüt. N coïthãø laì inf, nhæng khäng laì M. Nãúu ma tráûn traí vãöA tæì caïch chè duìng chuyãøn âäøi kyï tæû vaì SIZEkhäng thuäüc daûng [M,N] thç traí vãö mäüt vectå cäüt.FORMAT laì mäüt chuäùi chæïa caïc chè âënh chuyãøn âäøicuía ngän ngæî C. Caïc chè âënh chuyãøn âäøi gäöm kyïtæû %, læûa choün “ * ” boí qua viãûc gaïn vaì træåìngâäü räüng, vaì caïc kyï tæû chuyãøn kiãøu d, i, o, u,x, e, f, g, s, c, vaì [. . .]. Xem giaïo trçnh C vãöcaïc kyï tæû chuyãøn kiãøu. Nãúu mäüt kyï tæû chuyãønâäøi âæåüc duìng âãø âoüc mäüt pháön tæí thç coï thãølaìm cho mäüt säú pháön tæí ma tráûn cuía MATLAB âæåücduìng, mäùi pháön tæí giæî mäüt kyï tæû . Viãûc träünkyï tæû vaì caïc chè âënh chuyãøn kiãøu säú seî laìmcho ma tráûn kãút quaí laì ma tráûn säú vaì caïc kyïtæû âoüc vaìo nhæ giaï trë ASCII cuía chuïng, mäùi kyïtæû trãn mäüt pháön tæí cuía ma tráûn FSCANF khaïc våïi haìm truìng tãn cuía noï trong C,âiãöu quan troüng tæång æïng laì noï âæåüc “ vectå hoïa nhàòm traíí vãö mäüt âäúi säú ma tráûn.Chuäùi FORMAT âæåüc duìng laûi qua tãûp cho âãún khihãút tãûp hoàûc täøng säú dæî liãûu chè âënh båíi SIZEâæåüc âoüc vaìo. Vê duû: S = fscanf(fid,%s) âoüc (vaì traí vãö ) mäütchuäùi kyï tæû A = fscanf(fid,%5d) âoüc säú nguyãn tháûp phán5-chæî säúFPRINTFFPRINTF Ghi dæî liãûu coï daûng thæïc vaìo tãûpCOUNT = FPRINTF(FID,FORMAT,A,...) âënh daûng dæî liãûutrong ma tráûn A (vaì trong moüi ma tráûn âäiú säú thãmvaìo), dæåïi âiãöu khiãøn cuía chuäùi chè âënh FORMAT,vaì ghi noï vaìo tãûp coï daûnh hiãûu FID. COUNT laìâäúi säú xuáút tuìy choün âãø traí vãö säú byte ghithaình cäng. FID laì mäüt säú nguyãn danh hiãûu tãûpnháûn âæåüc FOPEN. Noï cuîng coï thãø laì 1 cho xuáútchuáøn (maìn hçnh) hoàûc 2 cho läùi chuáøn. FORMAT laìchuäùi chæïa caïc chè âënh chuyãøn kiãøu cuía C. Caïcchè âënh chuyãøn âäøi gäöm kyï tæû %, , caïc cåì tuìychoün, caïc træåìng âäü räüng vaì säú caïc säú tháûpphán, chè âënh kiãøu con, vaì caïc kyï tæû chuyãønPhan Thanh Tao - 2004Phụ lục-Lệnh và hàm 217kiãøu d, i, o, u, x, X, f, e, E, g, G, c, vaì s. Xemgiaïo trçnh C âãø biãút thãm chi tiãútFPRINTF nhæ ANSI C våïi caïc loaûi træì vaì caïc måíräüng. Bao gäöm: 1. Nãúu säú thæûc keïp cuía MATLAB khäng chuyãønchênh xaïc sang kiãøu dæî liãûu chè âënh trong kyï tæûchuyãøn kiãøu thç FORMAT “ e ” âæåüc duìng. Phaíichuyãøn roî raìng caïc giaï trë khäng nguyãn cuíaMATLAB sang caïc giaï trë nguyãn nãúu coï yï âënh duìngchè âënh chuyãøn kiãøu nguyãn nhæ “ d ” vaì láúy caïchxæí lyï cuía ANSI C 2. Caïc chè âënh kiãøu con khäng chuáøn sau âæåüccung cáúp cho caïc kyï tæû chuyãøn kiãøu o, u, x, vaì X t - Kiãøu dæî liãûu cå såí cuía C laì floatkhaïc våïi säú nguyãn khäng dáúu b - Kiãøu dæî liãûu cå såí cuía C laì doublekhaïc våïi säú nguyãn khäng dáúuVê duû, âãø in ra mäüt giaï trë double cå säú hex thçduìng FORMAT nhæ %bx FPRINTF cuîng khaïc våïi haìm cuìng tãn cuía noï trongC - quan troüng laì vectå hoïa khi A khäng phaíilaì âaûi læåüng vä hæåïng. Chuäùi FORMAT âæåüc duìnglaûi qua caïc pháön tæí cuía A (tæìng cäüt) cho âãúnkhi táút caí caïc pháön tæí âæåüc duìng hãút. Räöi noïâæåüc duìng laûi theo cuìng caïch, khäng khåíi taûolaûi, qua moüi âäúi säú ma tráûn thãm vaìo. Vê duû,caïc lãûnh x = 0:.1:1; y = [x; exp(x)]; fid = fopen(exp.txt,w); fprintf(fid,%6.2f %12.8f\n,y); taûo måïi mäüt tãûp vàn baín chæïa baíng ngàõn caïcgiaï trë cuía haìm muî cå säú tæû nhiãn: 0.00 1.00000000 0.10 1.10517092 ... 1.00 2.71828183FGETLTraí vãö doìng tiãúp theo cuía tãûp nhæ mäüt chuäùiFGETL(FID) traí vãö doìng tiãúp theo cuía mäüt tãûpvåïi danh hiãûu tãûp FID nhæ mäüt chuäùi MATLAB. Traívãö maì khäng âæa vaìo kyï tæû sang doìng. DuìngFGETS() âãø láúy doìng tiãúp theo coï âæa vaìo kyï tæûsang doìng. Nãúu âuïng kãút thuïc tãûp thç traí vãö -1 QUAN TROÜNG: Haîy læu yï ràòng haìm naìy coï yïchè duìng våïi tãûp vàn baín. Nãúu båíi nháöm láùn,âoüc mäüt tãûp nhë phán maì khäng coï kyï tæû sangdoìng thç phuûc vuû naìy coï thãø täún nhiãöu thåìigian våïi tãûp låïn. Vê duû: (tæång âæång lãûnh typefgetl.m) fid=fopen(fgetl.m); while 1 line = fgetl(fid); if ~isstr(line), break, end disp(line)Phan Thanh Tao - 2004Phụ lục-Lệnh và hàm 218 end fclose(fid);FGETSTraí vãö doìng tiãúp theo cuía tãûp nhæ mäüt chuäùi FGETS(FID) traí vãö doìng tiãúp theo cuía mäüttãûp våïi danh hiãûu tãûp fid laì mäüt chuäùi MATLAB.Coï âæa vaìo kyï tæû sang doìng. Duìng FGETL() âãø láúydoìng tiãúp theo maì khäng âæa vaìo kyï tæû sang doìng.Nãúu âuïng kãút thuïc tãûp thç traí vãö -1QUAN TROÜNG: Haîy læu yï ràòng haìm naìy coï yï chèduìng våïi tãûp vàn baín. Nãúu båíi nháöm láùn, âoücmäüt tãûp nhë phán maì khäng coï kyï tæû sang doìngthç phuûc vuû naìy coï thãø täún nhiãöu thåìi gian våïitãûp låïnVë trê tãûpFERRORHoíi caïc läùi trong nháûp/xuáút tãûp MESSAGE = FERROR(FID,clear) traí vãö thäng baïoläùi vaìo/ra gáön nháút våïi tãûp chè âënh. Chuäùiclear laì tuìy ch ...