YOMEDIA
ADSENSE
IT - Matlab Software (Phần 2) part 8
Chia sẻ: Fewgnmerihnweil Bgmrtlihnmeilbni | Ngày: | Loại File: PDF | Số trang:8
71
lượt xem 6
download
lượt xem 6
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
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ả
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: IT - Matlab Software (Phần 2) part 8
- Phụ lục-Lệnh và hàm 216 [A,COUNT] = FSCANF(FID,FORMAT,SIZE) âoüc dæî liãûu tæì tãûp chè âënh båíi danh hiãûu tãûp FID, chuyãøn sang 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 âæåüc tæì FOPEN. SIZE laì tuìy choün; noï âàût mäüt giåïi haû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ãúu coï chè âënh thç caïc âãö muûc håüp lyï laì: N âoüc háöu hãút N pháön tæí vaìo mäüt vectå cäüt inf âoüc âãún hãút tãûp [M,N] âoüc M * N pháön tæí láúp âáöy êt nháú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ì SIZE khä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 âäøi cuí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 âæåüc duìng, mäùi pháön tæí giæî mäüt kyï tæû . Viãûc träün kyï tæû vaì caïc chè âënh chuyãøn kiãøu säú seî laìm cho 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 khi hãú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äüt chuäùi kyï tæû A = fscanf(fid,'%5d') âoüc säú nguyãn tháûp phán 5-chæî säú FPRINTF FPRINTF Ghi dæî liãûu coï daûng thæïc vaìo tãûp COUNT = FPRINTF(FID,FORMAT,A,...) âënh daûng dæî liãûu trong ma tráûn A (vaì trong moüi ma tráûn âäiú säú thãm vaì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 ghi thaình cäng. FID laì mäüt säú nguyãn danh hiãûu tãûp nháûn âæåüc FOPEN. Noï cuîng coï thãø laì 1 cho xuáút chuáø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ïc chè âënh chuyãøn âäøi gäöm kyï tæû %, , caïc cåì tuìy choün, caïc træåìng âäü räüng vaì säú caïc säú tháûp phán, chè âënh kiãøu con, vaì caïc kyï tæû chuyãøn Phan Thanh Tao - 2004
- Phụ lục-Lệnh và hàm 217 kiãøu d, i, o, u, x, X, f, e, E, g, G, c, vaì s. Xem giaïo trçnh C âãø biãút thãm chi tiãút FPRINTF 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ãøn chê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íi chuyãøn roî raìng caïc giaï trë khäng nguyãn cuía MATLAB sang caïc giaï trë nguyãn nãúu coï yï âënh duìng chè âënh chuyãøn kiãøu nguyãn nhæ “ d ” vaì láúy caïch xæí lyï cuía ANSI C 2. Caïc chè âënh kiãøu con khäng chuáøn sau âæåüc cung 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ì float khaïc våïi säú nguyãn khäng dáúu b - Kiãøu dæî liãûu cå såí cuía C laì double khaïc våïi säú nguyãn khäng dáúu Vê 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ï trong C - quan troüng laì " vectå hoïa " khi A khäng phaíi laì âaûi læåüng vä hæåïng. Chuäùi FORMAT âæåüc duìng laûi qua caïc pháön tæí cuía A (tæìng cäüt) cho âãún khi 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ûo laû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ïc giaï trë cuía haìm muî cå säú tæû nhiãn: 0.00 1.00000000 0.10 1.10517092 ... 1.00 2.71828183 FGETL Traí vãö doìng tiãúp theo cuía tãûp nhæ mäüt chuäùi FGETL(FID) traí vãö doìng tiãúp theo cuía mäüt tãûp våï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ìng FGETS() âãø 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æû sang doìng thç phuûc vuû naìy coï thãø täún nhiãöu thåìi gian våïi tãûp låïn. Vê duû: (tæång âæång lãûnh 'type fgetl.m') fid=fopen('fgetl.m'); while 1 line = fgetl(fid); if ~isstr(line), break, end disp(line) Phan Thanh Tao - 2004
- Phụ lục-Lệnh và hàm 218 end fclose(fid); FGETS Traí 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äüt tãû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áúy doì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ãö -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æû sang doìng thç phuûc vuû naìy coï thãø täún nhiãöu thåìi gian våïi tãûp låïn Vë trê tãûp FERROR Hoíi caïc läùi trong nháûp/xuáút tãûp MESSAGE = FERROR(FID,'clear') traí vãö thäng baïo läùi vaìo/ra gáön nháút våïi tãûp chè âënh. Chuäùi 'clear' laì tuìy choün. Nãúu coï, thç xoïa läùi biãøu hiãûn cho tãûp chè âënh [MESSAGE, ERRNUM] = FERROR(FID) cuîng traí vãö säú läùi. FID laì mäüt säú nguyãn danh hiãûu tãûp nháûn âæåüc tæìì FOPEN, hoàûc 0 cho nháûp chuáøn, 1 cho xuáút chuáøn hoàûc 2 cho läùi chuáøn FEOF Kiãøm tra hãút tãûp FEOF(FID) kiãøm tra biãøu hiãûn hãút tãûp cho tãûp våïi danh hiãûu tãûp laì FID FEOF(FID) traí vãö 1 nãúu biãøu hiãûn hãút tãûp âæåüc âàût, hoàûc 0 nãúu khäng âàût FSEEK Âäøi biãøu hiãûn vë trê trong mäüt tãûp STATUS = FSEEK(FID, offset, origin) âàût laûi vë trê tãûp trong tãûp chè âënh vaìo säú byte offset tæång æïng våïi origin chè âënh. FID laì mäüt säú nguyãn danh hiãûu tãûp nháûn âæåüc tæìì FOPEN. Caïc giaï trë offset âæåüc thäng dëch nhæ sau: > 0 : Di chuyãøn vãö phêa cuäúi tãûp = 0 : Khäng thay âäøi vë trê < 0 : Di chuyãøn vãö phêa âáöu tãûp Caïc giaï trë origin âæåüc thäng dëch nhæ sau: 'bof' hoàûc -1 : Âáöu tãûp 'cof' hoàûc 0 : Vë trê hiãûn thåìi trong tãûp 'eof' hoàûc 1 : Cuäúi tãûp STATUS = 0 nãúu thaình cäng vaìì -1 nãúu bë läùi Vê duû: fseek(fid,0,-1) "tua laûi" tãûp (âàût vë trê laûi åí âáöu tãûp) Phan Thanh Tao - 2004
- Phụ lục-Lệnh và hàm 219 FTELL Tçm vë trê trong mäüt tãûp POSITION = FTELL(FID) traí vãö vë trê cuía trong tãûp chè âënh. Position biãøu hiãûn theo âån vë byte tênh tæì âáöu tãûp. Nãúu -1 âæåüc traí vãö, thç biãøu hiãûn khäng thaình cäng; duìng FERROR âãø xaïc âënh traûng thaïi läùi. FID laì mäüt säú nguyãn danh hiãûu tãûp nháûn âæåüc tæì FOPEN, hoàûc 0 cho nháûp chuáøn, 1 cho xuáút chuáøn hoàûc 2 cho läùi chuáøn Phan Thanh Tao - 2004
- Phụ lục-Lệnh và hàm 220 FREWIND FREWIND tua laûi mäüt tãûp âang måí FREWIND(FID) âàût con troí tãûp vaìo âáöu tãûp våïi danh hiãûu tãûp laì fid Khuyãún caïo: Tua laûi mäüt danh hiãûu tãûp fid våïi mäüt thiãút bë bàng tæì coï thãø khäng khäng laìm viãûc, màûc duì khäng phaït sinh läùi! Chuyãøn âäøi chuäùi SPRINTF SPRINTF Ghi dæî liãûu coï daûng thæïc vaìo mäüt chuäùi [S,ERRMSG] = SPRINTF(FORMAT,A,...) âënh daûng dæî liãûu trong ma tráûn A (vaì trong caïc âäúi säú ma tráûn thãm vaìo), dæåïi âiãöu khiãøn cuía chuäùi chè âënh FORMAT, vaì traí vãö noï trong biãún S våïi daûng chuäùi MATLAB. ERRMSG laì âäúi säú xuáút tuìy choün âãø traí vãö mäüt chuäùi thäng baïo läùi nãúu xaíy ra läùi hoàûc mäüt ma tráûn räùng nãúu khäng läùi. SPRINTF giäúng nhæ FPRINTF ngoaûi træì noï traí vãö dæî liãûu trong mäüt biãún chuäùi MATLAB khaïc våïi ghi vaìo tãûp. FORMAT laì mäüt chuäùi chæïa caïc chè âënh chuyãøn kiãøu cuía C. Caïc chè âënh chuyãøn kiãøu gäöm kyï tæû %, caïc cåì, caïc træåìng âäü räüng vaì säú chæî säú tháûp phán, chè âënh kiãøu con, vaì kyï tæû chuyãøn kiãøu d, i, o, u, x, X, f, e, E, g, G, c, vaì s. Xem giaïo trçnh C âãø biãút thãm chi tiãút. SPRINTF nhæ trong ANSI C våïi moüt säú ngoaûi lãû vaì måí räüng. Bao gäöm: 1. Nãúu säú thæûc keïp cuía MATLAB khäng chuyãøn chênh xaïc sang kiãøu dæî liãûu chè âënh trong kyï tæû chuyãøn kiãøu thç FORMAT “ e ” âæåüc duìng. Baûn phaíi chuyãøn roî raìng caïc giaï trë khäng nguyãn cuía MATLAB sang caïc giaï trë nguyãn nãúu baûn coï yï âënh duìng chè âënh chuyãøn kiãøu nguyãn nhæ “ d ” vaì láúy caïch xæí lyï cuía ANSI C 2. Caïc chè âënh kiãøu con khäng chuáøn sau âæåüc cung 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ì float khaïc våïi säú nguyãn khäng dáúu b - Kiãøu dæî liãûu cå såí cuía C laì double khaïc våïi säú nguyãn khäng dáúu Vê duû, âãø in ra mäüt giaï trë double cå säú hex thç duìng FORMAT nhæ '%bx' SPRINTF cuîng khaïc våïi haìm cuìng tãn cuía noï trong C - quan troüng laì " vectå hoïa " khi A khäng phaíi laì âaûi læåüng vä hæåïng. Chuäùi FORMAT âæåüc duìng laûi qua caïc pháön tæí cuía A (tæìng cäüt) cho âãún khi 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ûo laûi, qua moüi âäúi säú ma tráûn thãm vaìo. Vê duû, caïc lãûnh S = sprintf('rho is %5.3f',(1+sqrt(5))/2) cho ra chuäùi S = 'rho is 1.618' Phan Thanh Tao - 2004
- Phụ lục-Lệnh và hàm 221 SSCANF Âoüc chuäùi dæåïi âiãöu khiãøn coï daûng thæïc [A,COUNT,ERRMSG,NEXTINDEX] = SSCANF(S,FORMAT,SIZE) âoüc dæî liãûu tæì biãún chuäùi MATLAB laì S, chuyãøn sang chuäùi chè âënh FORMAT, vaì traí vãö trong ma tráûn A. COUNT laì mäüt âäúi säú xuáút tuìy choün âãø traí vãö säú pháön tæ âoüc thaình cäng ERRMSG laì mäüt âäúi säú xuáút tuìy choün âãø traí vãö mäüt chuäùi thäng baïo läùi nãúu coï läùi hoàûc mäüt ma tráûn räùng nãúu khäng läùi. NEXTINDEX laì mäüt âäúi säú xuáút tuìy choün chè âënh mäüt hay nhiãöu säú kyï tæû âaî queït trong S. SSCANF giäúng FSCANF ngoaûi træì noï âoüc dæî liãûu tæì mäüt biãún chuäùi MATLAB khaïc våïi âoüc tæì mäüt tãûp. SIZE laì tuìy choün; noï âàût mäüt giåïi haûn vaìo pháön tæ coï thãø queït tæì chuäùi; nãúu khäng chè âënh, thç xem nhæ toaìn bäü chuäùi; nãúu coï chè âënh, thç caïc âãö muûc håüp lyï laì: N âoüc N pháön tæí vaìo mäüt vectå cäüt inf âoüc âãún cuäúi chuäùi [M,N] âoüc M * N pháön tæí láúp âáöy êt nháút mäüt ma tráûn cåî MxN, theo cäüt. N coï thãø laì inf, nhæng khäng laì M. Nãúu ma tráûn kãút quaí A chè tæì viãûc duìng kyï tæû chuyãøn kiãøu vaì SIZE khäng coï daûng [M,N] thç mäüt vectå doìng âæåüc traí vãö. FORMAT laì mäüt chuäùi chæïa caïc chè âënh chuyãøn âäøi cuí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 âæåüc duìng, mäùi pháön tæí giæî mäüt kyï tæû . Viãûc träün kyï tæû vaì caïc chè âënh chuyãøn kiãøu säú seî laìm cho 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 Viãûc queït âãún cuäúi chuäùi xaíy ra khi NEXTINDEX låïn hån kêch thæåïc cuía S SSCANF 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 khi hãút tãûp hoàûc täøng säú dæî liãûu chè âënh båíi SIZE âæåüc chuyãøn sang. Vê duû, caïc lãûnh: S = '2.7183 3.1416'; A = sscanf(S,'%f') taûo måïi mäüt vectå hai pháön tæí chæïa giaï trë xáúp xè cuía säú e vaì pi Caïc ma tráûn thæa så cáúp SPEYE Ma tráûn thæa âån vë Phan Thanh Tao - 2004
- Phụ lục-Lệnh và hàm 222 SPEYE(M,N) taûo mäüt ma tráûn thæa cåî MxN våïi caïc säú 1 trãn âæåìng cheïo chênh SPEYE(N) laì caïch goün cuía SPEYE(N,N) SPEYE(SIZE(A)) laì mäüt caïch giaím khäng gian cuía SPARSE(EYE(SIZE(A))) Phan Thanh Tao - 2004
- Phụ lục-Lệnh và hàm 223 SPRANDN Caïc ma tráûn thæa ngáùu nhiãn R = SPRANDN(S) coï cuìng cáúu truïc thæa nhæ S, nhæng caïc pháön tæí âæåüc phán bäú ngáùu nhiãn chuáøn R = SPRANDN(m,n,density) laì ma tráûn thæa cåî mxn, våïi caïc pháön tæí khaïc khäng âæåüc phán bäú chuáøn khoaíng density*m*n R = SPRANDN(m,n,density,rc) cuîng coï säú âiãöu kiãûn tæång häù gáön bàòng rc. R âæåüc xáy dæûng tæì täøng caïc ma tráûn haûng bàòng 1. Nãúu rc laì mäüt vectå âäü daìi lr
ADSENSE
CÓ THỂ BẠN MUỐN DOWNLOAD
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn