intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo trình mathlab toàn tập - Chương 4

Chia sẻ: Nguyễn Nhi | Ngày: | Loại File: PDF | Số trang:4

92
lượt xem
28
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Script M_files Một vấn đề đơn giản là, yêu cầu của bạn tại dấu nhắc của MATLAB trong cửa sổ lệnh là nhanh và hiệu quả. Tuy nhiên vì số lệnh tăng lên, hoặc khi bạn muốn thay đổi giá trị của một hoặc nhiều biến và thực hiện lại một số lệnh với giá trị mới, nếu cứ đánh lặp lại tại dấu nhắc của MATLAB thì sẽ trở lên buồn tẻ, do vậy MATLAB cung cấp một giải pháp cho vấn đề này là: nó cho phép bạn thay thế các lệnh của MATLAB bằng một file văn...

Chủ đề:
Lưu

Nội dung Text: Giáo trình mathlab toàn tập - Chương 4

  1. 17 MÆc ®Þnh, nÕu kÕt qu¶ lµ sè nguyªn th× MATLAB hiÓn thÞ nã lµ mét sè nguyªn, khi kÕt qu¶ lµ mét sè thùc th× MATLAB hiÓn thÞ sè xÊp xØ víi bèn ch÷ sè sau dÊu phÈy, cßn c¸c sè d¹ng khoa häc th× MATLAB hiÓn thÞ còng gièng nh− trong c¸c m¸y tÝnh khoa häc. B¹n cã thÓ kh«ng dïng d¹ng mÆc ®Þnh, mµ t¹o mét khu«n d¹ng riªng tõ môc Preferences, trong b¶ng chän file, cã thÓ mÆc ®Þnh hoÆc ®¸nh d¹ng xÊp xØ t¹i dÊu nh¾c. Chóng ta dïng biÕn average_cost ( trong vÝ dô tr−íc) lµm vÝ dô, d¹ng sè nµy lµ: LÖnh cña MATLAB Average_cost Chó thÝch format short 50.833 5 sè format long 50.83333333333334 16 sè format short e 5.0833e+01 5 sè víi sè mò format long e 5.083333333333334e+01 16 sè víi sè mò format short g 50.833 chÝnh x¸c h¬n format short hoÆc format short e format long g 50.83333333333333 chÝnh x¸c h¬n format long hoÆc format long e format hex 40496aaaaaaaaaab hÖ c¬ sè 16 format bank 50.83 hai sè hÖ 10 format + + d−¬ng, ©m hoÆc b»ng kh«ng format rat 305/ 6 d¹ng ph©n sè Mét chó ý quan träng lµ MATLAB kh«ng thay ®æi sè khi ®Þnh l¹i khu«n d¹ng hiÓn thÞ ®−îc chän, mµ chØ thay ®æi mµn h×nh thay ®æi. ---------------oOo----------------- Ch−¬ng 4 Script M_files Mét vÊn ®Ò ®¬n gi¶n lµ, yªu cÇu cña b¹n t¹i dÊu nh¾c cña MATLAB trong cöa sæ lÖnh lµ nhanh vµ hiÖu qu¶. Tuy nhiªn v× sè lÖnh t¨ng lªn, hoÆc khi b¹n muèn thay ®æi gi¸ trÞ cña mét hoÆc nhiÒu biÕn vµ thùc hiÖn l¹i mét sè lÖnh víi gi¸ trÞ míi, nÕu cø ®¸nh lÆp l¹i t¹i dÊu nh¾c cña MATLAB th× sÏ trë lªn buån tÎ, do vËy MATLAB cung cÊp mét gi¶i ph¸p cho vÊn ®Ò nµy lµ: nã cho phÐp b¹n thay thÕ c¸c lÖnh cña MATLAB b»ng mét file v¨n b¶n ®¬n gi¶n, vµ yªu cÇu MATLAB më file vµ thùc hiÖn lÖnh chÝnh x¸c nh− lµ ®¸nh t¹i dÊu nh¾c cña MATLAB t¹i cöa sæ lÖnh, nh÷ng file nµy gäi lµ script file, hoÆc ®¬n gi¶n lµ M_file. Danh tõ "script" ®Ó chØ r»ng thùc tÕ MATLAB ®äc tõ file kÞch b¶n t×m thÊy trong file. Danh tõ "M_file" ®Ó chØ r»ng tªn script file ®ã ph¶i kÕt thóc b»ng phÇn më réng lµ '.m' nh vÝ dô example1.m. §Ó t¹o mét script M_file, chän New trong b¶ng chän file vµ chän M_file. Thñ tôc nµy sÏ t¹o ra mµn h×nh so¹n th¶o, vµ b¹n cã thÓ ®¸nh ®−îc c¸c lÖnh cña MATLAB trong ®ã. VÝ dô d−íi ®©y lµ c¸ch lÖnh trong vÝ dô −íc l−îng chiÒu cao ng«i nhµ ë tr−íc: function example1 % example1.m VÝ dô −íc l−îng chiÒu cao ng«i nhµ h=2 theta = 60 D = 50; building_height = h + D*tan(theta*pi/180)
  2. 18 B¹n cã thÓ ghi vµ l−u gi÷ file nµyb»ng c¸ch chän Save tõ b¶ng chän file. Khi b¹n ghi lªn file chó ý ph¶i ®¸nh tªn file trïng víi tªn hµm (example) kh«ng cÇn ®¸nh vµo phÇn më réng, MATLAB tù g¸n vµo cho nã. Khi ®ã tõ dÊu nh¾c ta cã thÓ ®¸nh: >> example1 h= 2 theta= 60 building_height= 54.3599 Khi MATLAB diÔn gi¶i c¸c tr¹ng th¸i cña example1 ë trªn, nã sÏ ®−îc nãi kü h¬n ë ch−¬ng sau, nh−ng mét c¸ch ng¾n gän, MATLAB dïng c¸c tr¹ng th¸i cña biÕn MATLAB hiÖn t¹i vµ t¹o lªn c¸c lÖnh cña nã, b¾t ®Çu b»ng tªn M_file. NghÜa lµ, nÕu example1 kh«ng ph¶i lµ biÕn hiÖn t¹i, hoÆc mét lÖnh MATLAB x©y dùng lªn, MATLAB më file example1.m (nÕu nã t×m thÊy) vµ tÝnh gi¸ trÞ c¸c lÖnh t×m thÊy chØ khi chóng ta vµo c¸c th«ng sè chÝnh x¸c t¹i dÊu nh¾c cña cöa sæ lÖnh. Nh− ®· thÊy lÖnh trong M_file truy cËp ®Õn tÊt c¶ c¸c biÕn trong kh«ng gian lµm viÖc cña MATLAB, vµ tÊt c¶ c¸c biÕn trong M_file trë thµnh mét phÇn cña kh«ng gian lµm viÖc. B×nh th−êng c¸c lÖnh ®äc trong M_file kh«ng ®−îc hiÓn thÞ nh− lµ nã ®−îc tÝnh trong cöa sæ lÖnh, nh−ng lÖnh echo on yªu cÇu MATLAB hiÓn thÞ hoÆc lÆp l¹i lÖnh ®èi víi cöa sæ lÖnh nh− chóng ta ®· ®äc vµ tÝnh. TiÕp theo b¹n cã thÓ ®o¸n ®−îc lÖnh echo off lµm g×. Gièng nh− vËy, lÖnh echo lÆp l¹i bëi chÝnh nã lµm thay ®æi chÝnh tr¹ng th¸i cña nã. Víi ®Æc ®iÓm nµy cña M_file b¹n cã thÓ thay ®æi l¹i néi dung cña file, vÝ dô b¹n cã thÓ më M_file example1.m thay ®æi l¹i c¸c gi¸ trÞ cña h, D, hoÆc theta, ghi l¹i file ®ã vµ yªu cÇu MATLAB tÝnh l¹i lÖnh trong file. Thªm n÷a, b»ng c¸ch t¹o M_file, c¸c lÖnh cña b¹n ®−îc l−u trªn ®Üa vµ cã thÓ øng dông vÒ sau khi b¹n cÇn. Nh÷ng øng dông cña chØ dÉn cña MATLAB gióp chóng ta hiÓu ®−îc khi dïng script file nh− trong example1.m, chØ dÉn cho phÐp b¹n l−u gi÷ cïng c¸c lÖnh trong script file, v× vËy b¹n nhí ®- −îc nh÷ng lÖnh ®ã lµm g× khi b¹n nh×n l¹i file sau ®Êy. Thªm n÷a, dÊu chÊm phÈy ®»ng sau c©u lÖnh kh«ng cho hiÓn thÞ kÕt qu¶, tõ ®ã b¹n cã thÓ ®iÒu chØnh script file ®a ra nh÷ng kÕt qu¶ cÇn thiÕt. V× nh÷ng øng dông cña script file, MATLAB cung cÊp mét sè hµm ®Æc biÖt cã Ých khi b¹n sö dông trong M_file: C¸c hµm M_file disp(ans) HiÓn thÞ c¸c kÕt qu¶ mµ kh«ng hiÖn tªn biÕn echo §iÒu khiÓn cöa sæ lÖnh lÆp l¹i c¸c lÖnh cña script file input Sö dông dÊu nh¾c ®Ó ®a d÷ liÖu vµo keyboard Trao ®iÒu khiÓn t¹m thêi cho bµn phÝm pause Dõng l¹i cho ®Õn khi ng−êi dïng nhÊn mét phÝm bÊt kú pause(n) Dõng l¹i n gi©y waitforbuttonpress Dõng l¹i cho ®Õn khi ng−êi dïng nhÊn chuét hoÆc phÝm. Khi lÖnh cña MATLAB kh«ng kÕt thóc b»ng dÊu chÊm phÈy, kÕt qu¶ cña lÖnh ®−îc hiÓn thÞ trªn cöa sæ lÖnh cïng víi tªn biÕn. §«i lóc nã thuËn tiÖn khi kh«ng cho hiÖn tªn biÕn, trong MATLAB ta dïng lÖnh disp ®Ó thùc hiÖn viÖc nµy: % C¸ch truyÒn thèng ®Ó hiÖn kÕt qu¶ >> h h= 2 % HiÖn kÕt qu¶ kh«ng cã tªn biÕn >> disp(h) 2
  3. 19 §Ó gióp b¹n so¹n th¶o script file khi tÝnh to¸n cho nhiÒu tr−êng hîp, lÖnh input cho phÐp b¹n t¹o c©u nh¾c ®Ó vµo d÷ liÖu ®−îc an toµn. VÝ dô example1.m víi nh÷ng phÇn ®−îc söa: function example1 % example1.m VÝ dô −íc l−îng chiÒu cao ng«i nhµ h=2 theta = 60 D = input(‘ Vµo kho¶ng c¸ch gi÷a ng−êi vµ ng«i nhµ: ‘) building_height = h + D*tan(theta*pi/180) ch¹y file nµy: >> example1 h= 2 theta= 60 Vµo kho¶ng c¸ch gi÷a ng−êi vµ ng«i nhµ: 60 D= 60 building_height= 64.8319 ë vÝ dô trªn ta gâ vµo sè 60 vµ Ên Enter. Nh÷ng lÖnh sau ®ã sÏ tÝnh víi gi¸ trÞ cña D lµ 60. Chó ý r»ng hµm input cã thÓ dïng víi c¸c phÐp to¸n kh¸c gièng nh− ®èi víi c¸c hµm th«ng th−êng kh¸c, hµm input còng chÊp nhËn ®èi víi bÊt cø kiÓu biÓu diÔn sè nµo, vÝ dô ta vµo mét sè lµ: +5. >> example1 h= 2 theta= 60 Vµo kho¶ng c¸ch gi÷a ng−êi vµ ng«i nhµ: sqrt(1908)+5 D= 48.6807 building_height= 52.9783 §Ó xem nh÷ng t¸c ®éng cña lÖnh echo, ta dïng chóng trong script file: echo on function example1 % example1.m VÝ dô −íc l−îng chiÒu cao ng«i nhµ h=2 theta = 60 D = input(‘ Vµo kho¶ng c¸ch gi÷a ng−êi vµ ng«i nhµ: ‘) building_height = h + D*tan(theta*pi/180) echo off
  4. 20 ch¹y ch−¬ng tr×nh ta ®−îc: >> example1 % example1.m VÝ dô −íc l−îng chiÒu cao ng«i nhµ h=2 h= 2 theta = 60 theta= 60 D = input(‘ Vµo kho¶ng c¸ch gi÷a ng−êi vµ ng«i nhµ: ‘) Vµo kho¶ng c¸ch gi÷a ng−êi vµ ng«i nhµ: 60 building_height = h + D*tan(theta*pi/180) building_height= 64.8319 echo off Nh− b¹n ®· thÊy trong tr−êng hîp nµy, lÖnh echo lµm cho kÕt qu¶ khã ®äc h¬n, nh−ng ng−îc l¹i lÖnh nã cã thÓ rÊt cã Ých khi gì rèi nhiÒu script file øng dông. ------------------oOo------------------- Ch−¬ng 5 QU¶N Lý TÖp MATLAB cung cÊp mét sè c¸c hµm file hÖ thèng vµ c¸c lÖnh cho phÐp b¹n liÖt kª tªn file, xem, vµ xo¸ M_file, hiÓn thÞ vµ thay ®æi th− môc chøa nã. Mét sè tæng kÕt c¸c lÖnh ®−îc ®wa ra trong b¶ng d- −íi ®©y. Thªm vµo ®ã b¹n cã thÓ xem vµ söa ®−êng dÉn cña MATLAB (matlabpath). Nh÷ng ®−êng dÉn nµy chØ cho MATLAB n¬i chøa script file vµ hµm M_file trong m¸y tÝnh cña b¹n. Cã rÊt nhiÒu tr- −êng hîp c¸c hµm trong MATLAB lµ c¸c M_file ®¬n gi¶n ®−îc chøa trong æ ®Üa, nh−ng MATLAB th«ng b¸o kh«ng biÕt hµm nµy, nh− vËy do nã kh«ng t×m ®−îc ®−êng dÉn cña MATLAB, b¹n cÇn ph¶i thay ®æi l¹i ®−êng dÉn: C¸c hµm hÖ thèng file addpath dir1 Thªm th− môc dir1 vµo b¾t ®Çu cña ®−êng dÉn cd HiÓn thÞ th− môc hiÖn thêi p = cd G¸n th− môc lµm viÖc hiÖn thêi cho biÕn p cd path Thay ®æi th− môc ®a ra b»ng ®−êng dÉn delete test.m Xo¸ M_file test.m dir Danh s¸ch tÊt c¶ c¸c file trong th− môc hiÖn thêi d = dir Tr¶ l¹i file trong th− môc hiÖn thêi trong cÊu tróc biÕn d edit test Më test.m ®Ó so¹n th¶o, gièng nh− Open trong b¶ng chon file exist(‘cow’,’file’) KiÓm tra sù tån t¹i cña file cow.m trong ®−êng dÉn exist(‘d’,’dir’) KiÓm tra sù tån t¹i cña th− môc d trong ®−êng dÉn filesep T¸ch file nh−‘\ ’ trong Windows95 vµ NT, ‘:’ trªn Macintosh fullfile T¹o tªn file víi ®−êng dÉn ®Çy ®ñ
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2