Bài giảng Tin học ứng dụng trong kỹ thuật địa chất & dầu khí - Phần 8 - Đỗ Quang Khánh
M-FILE, or SCRIPT
Việc nhập lệnh từ dấu nhắc (>>) thì nhanh và hiệu quả, nhưng
khi thực hiện một lúc nhiều lệnh hoặc muốn thay đổi giá trị của
một hoặc nhiều biến và lặp lại một số lệnh thì việc nhập lệnh ở
dấu nhắc sẽ kém hiệu quả.
M-FILE tiện dụng cho việc giải bài toán lớn, MATLAB cung cấp
thủ tục để tạo hàm riêng cho người sử dụng với hình thức một
text file.
Giải pháp:
- Tập hợp các lệnh vào một file với phần mở rộng là (*.m)
Cụ thể:
- Để soạn thảo một M-File thì
- Để hiển thị những lệnh trong M-File khi chúng được thực
thi thì sử dụng lệnh echo on.
- Hiệu chỉnh M
Việc nhập lệnh từ dấu nhắc (>>) thì nhanh và hiệu quả, nhưng
khi thực hiện một lúc nhiều lệnh hoặc muốn thay đổi giá trị của
một hoặc nhiều biến và lặp lại một số lệnh thì việc nhập lệnh ở
dấu nhắc sẽ kém hiệu quả.
M-FILE tiện dụng cho việc giải bài toán lớn, MATLAB cung cấp
thủ tục để tạo hàm riêng cho người sử dụng với hình thức một
text file.
Giải pháp:
- Tập hợp các lệnh vào một file với phần mở rộng là (*.m)
Cụ thể:
- Để soạn thảo một M-File thì
- Để hiển thị những lệnh trong M-File khi chúng được thực
thi thì sử dụng lệnh echo on.
- Hiệu chỉnh M
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin học ứng dụng trong kỹ thuật địa chất & dầu khí - Phần 8 - Đỗ Quang Khánh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
- bai_giang_tin_hoc_ung_dung_trong_ky_thuat_dia_chat_dau_khi_p.pdf
Nội dung text: Bài giảng Tin học ứng dụng trong kỹ thuật địa chất & dầu khí - Phần 8 - Đỗ Quang Khánh
- ĐỒ HỌA CĂN BẢN (tt) Thí dụ lệnh fplot trong số phức: >> f='cos(tan(x))-tan(sin(x))'; >> fplot(f,[1 2]) ©Copyright 2007 MATLAB 61
- ĐỒ HỌA CĂN BẢN (tt) Thí dụ: Lệnh polar(t,r): Vẽ đồ thị góc t (radian) trong tọa độ cực theo bán kính r. Lệnh polar(t,r,’linestype’): Vẽ góc t với đường vẽ và nét xác định ‘linestype’. >>t = 0:.1:2*pi; >>polar(t,sin(2*t)) >>polar(t,sin(2*t),'m-') ©Copyright 2007 MATLAB 63
- ĐỒ HỌA CĂN BẢN (tt) Thí dụ lệnh loglog(x,y) >> x = logspace(-1,2); >> loglog(x,exp(x)) ©Copyright 2007 MATLAB 65
- ĐỒ HỌA CĂN BẢN (tt) Thí dụ : >> t=0:pi/20:6*pi; >> x=sin(t); >> y=sin(t-pi/2); >> z=t; >> subplot(121) >> plotyy(t,x,t,y,'plot') >> grid on >> subplot(122) >> plot3(x,y,z) >> grid on ©Copyright 2007 MATLAB 67
- Thí dụ-Lệnh quiver Giả sử ta có một trường vector như sau trong không gian R2: P(x,y) =x , Q(x,y) = y , thử vẽ hình ảnh của trường trong phạm vi x thuộc [1,5] và y thuộc [1,5]. Trước hết ta viết một sript file (lưu file này với tên Quiver.m) như sau: ©Copyright 2007 MATLAB 69
- ĐỒ HỌA CĂN BẢN (tt) Các lệnh thao tác và điều khiển Hiển thị cửa sổ đồ họa hiện hành figure(gef) figure Tạo ra cửa sổ đồ họa figure(‘propertyname’,’propertyvalue’, ) Chuyển từ trạng thái hold là on sang off và ngược hold lại hold on Giữ lại tất cả màn hình đã vẽ Xóa các màn hình đã vẽ chỉ thể hiện màn hình hiện hold off hành mới (Chế độ mặc định) axis Cân chỉnh trục tọa độ và hình dạng của nó grid Grid On/ grid off/ grid: Tạo/ tắt lưới cho đồ thị shg Hiển thị đồ thị trên màn hình clg Xóa đồ thị trên màn hình zoom Co vào hoặc dãn ra của đồ thị ©Copyright 2007 MATLAB 71
- ĐỒ HỌA CĂN BẢN (tt) ĐỌC DỮ LIỆU TỪ MÀN HÌNH ĐỒ HỌA Lấy tọa độ diểm trên đồ thị, khi một đồ thị được vẽ xong, nếu muốn lấy tọa độ của một số điểm trên đường này, ta sẽ dùng lệnh [x,y] = ginput(n); n là số điểm cần lấy tọa độ. Khi đồ thị hiện ra, ta nhấn phím trái chuột vào các vị trí mong muốn lấy tọa độ trên đồ thị, các hoành độ sẽ được chứa trong vector và tung độ trong vector y. Nếu quan hệ giữa hai đại lượng x, y cần được vẽ bằng các điểm rời rạc, thay vì là đường nối các điểm (x,y) như vẽ hàm, hàm plot sẽ dùng các điểm được đánh dấu (data makers) ©Copyright 2007 MATLAB 73
- ĐỒ HỌA CĂN BẢN (tt) Thí dụ: Nếu muốn nối liền các điểm được đánh dấu này bằng các đoạn thẳng, chúng ta có thể vẽ 2 lần. >>plot(x,y,'r o',x,y) ©Copyright 2007 MATLAB 75
- ĐỒ HỌA CĂN BẢN (tt) - Điền tiêu đề cho đồ thị, ta sử dụng lệnh: title(‘text’). - Tạo lưới cho đồ thị: grid on Thí dụ: <<title(‘do thi roi rac dung data marker o’) ©Copyright 2007 MATLAB 77
- ĐỒ HỌA CĂN BẢN (tt) Lệnh Mô tả Sử dụng hệ tọa độ ma trận, trong đó góc tọa độ ở Axis ij đỉnh góc trái, trục đứng tăng từ đỉnh xuống, trục ngang từ trái qua phải. Thiết lập đồ thị hiện tại là hình vuông, so với mặc Axissquare định là hình chữ nhật. Axisequal Thiết lập thang chia giống nhau cho cả hai hệ trục Tương tự như axisequal nhưng hộp đồ thị vừa đủ Axis tightequal đối với dữ liệu Axis normal Tắt đi chế độ axis, equal, tight và vis3d Tắt bỏ chế độ nền trục, nhãn, lưới, và hộp, dấu. Axis off Thoát khỏi chế độ lệnh title và bất cứ lệnh label nào và thay đổi bởi lệnh text và gtext. ©AxisCopyright on 2007 Ngược lại với axis off nếu chúng có thể MATLAB 79
- ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU Các lệnh vẽ trong tọa độ Đềcac ba chiều plot3: Vẽ đường thẳng và điểm trong không gian 3 chiều Thí dụ: Vẽ đường cong tham số: x =e-0.05tsint y =e-0.05tcost z = t ∈[0,10π] ©Copyright 2007 MATLAB 81
- ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt) CÁC LỆNH VẼ BIÊN DẠNG (contour) contour: Vẽ các đường đồng mức clabel: Nhãn ©Copyright 2007 MATLAB 83
- ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt) Tạo một lưới các điểm trong mặt phẳng xy Cú pháp: [X,Y] = meshgrid(x,y) Trong đó: x = [xmin,Δx,xmax] y = [ymin,Δy,ymax] Chức năng: − Hàm meshgrid sẽ phát sinh các tọa độ của một lưới chữ nhật có m.n điểm với một góc (xmin,ymin) còn góc kia là (xmax,ymax). − Ma trận X có kích thước m.n gồm n cột giống nhau là vector x’ và ma trận Y cũng có kích thước m.n hàng giống nhau là vector y. ©Copyright 2007 − Mỗi ô lưới sẽ có kích thước Δx, và Δy. MATLAB 85
- ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt) CÁC LỆNH VẼ MẶT LƯỚI TRONG 3D Mesh − MESH returns a handle to a surface plot object. Meshz: Vẽ bề mặt với các đường thẳng đứng viền quanh đồ thị. Waterfall: Vẽ bề mặt với các đường lưới theo một hướng như thác đổ. WATERFALL( ) is the same as MESH( ) except that the column lines of the mesh are not drawn - thus producing a "waterfall" plot. For column-oriented data analysis, use WATERFALL(Z') or WATERFALL(X',Y',Z'). ©Copyright 2007 MATLAB 87
- Thí dụ lệnh MESHZ >> meshz(X,Y,Z) ©Copyright 2007 MATLAB 89
- Thí dụ lệnh WATERFALL >> waterfall(X,Y,Z) ©Copyright 2007 MATLAB 91
- Thí dụ lệnh SURFC >> surfc(X,Y,Z) ©Copyright 2007 MATLAB 93
- Thí dụ lệnh CONTOUR >> contour(X,Y,Z) ©Copyright 2007 MATLAB 95
- ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt) Lệnh view view([α,β]) Trong đó: α: Là góc phương vị tính bằng độ ngược chiều kim đồng hồ từ phía trên của trục ngang (mặc định α = -37.5o) β: Góc nhìn tính bằng độ xuống mặt phẳng xy (mặc định β = 30o) Thí dụ: view([0,90]) : Vẽ 2D là một trường hợp đặc biệt của phép vẽ 3D. -Hiển thị đồ thị 3D đã tạo ra dưới dạng 2D theo góc phương vị và góc nhìn. ©Copyright 2007 MATLAB 97
- ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt) Lệnh rot90 ROT90 Rotate matrix 90 degrees. ROT90(A) is the 90 degree counterclockwise rotation of matrix A ROT90(A,K) is the K*90 degree rotation of A, K = +-1,+- 2, Example: A = [1 2 3 B = rot90(A) = [ 3 6 4 5 6 ] 2 5 1 4 ] ©Copyright 2007 MATLAB 99
- ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt) Thí dụ về lệnh Colormap và colorbar >> [x,y] = meshgrid(-2:.2:2); >> z = x.^(-x.^2-y.^2); >> [C,h] = contour(x,y,z); >> Clabel(C,h); %Nhãn biểu đồ contour >> Surf(peaks(30)) >> Colormap cool; %Chọn biểu đồ màu >> Colorbar % Hiển thị thanh biểu đồ màu ©Copyright 2007 MATLAB 101
- ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt) Các lệnh đồ họa khác trong đồ họa 3D 1. fill3: Tô đa giác 3 mặt trong không gian 3D. Cú pháp: fill3(x,y,z,c): Tô đa giác 3D được định nghĩa bởi 3 vector x, y, z với màu tô được xác định bởi c. fill3(x1,y1,z1,c1,x2,y2,z2,c2, ): Tô đa giác 3D xác định nhiều vùng tô. 2. comet3(z) 3. comet3(x,y,z) 4. comet3(x,y,z,p) 5. comet3 Các lệnh vẽ đườn viền 3 chiều trong 3D 6. contour3(z): Vẽ đường viền 3D cho tới mức z 7. contour3(z,n): Vẽ đường n viền 3D 8. contour3(x,y,z): Tương tự như trên, nhưng ma trận x,y để giới hạn trục x,y. ©Copyright 2007 MATLAB 103
- M-FILE, or SCRIPT Việc nhập lệnh từ dấu nhắc (>>) thì nhanh và hiệu quả, nhưng khi thực hiện một lúc nhiều lệnh hoặc muốn thay đổi giá trị của một hoặc nhiều biến và lặp lại một số lệnh thì việc nhập lệnh ở dấu nhắc sẽ kém hiệu quả. M-FILE tiện dụng cho việc giải bài toán lớn, MATLAB cung cấp thủ tục để tạo hàm riêng cho người sử dụng với hình thức một text file. Giải pháp: − Tập hợp các lệnh vào một file với phần mở rộng là (*.m) Cụ thể: − Để soạn thảo một M-File thì − Để hiển thị những lệnh trong M-File khi chúng được thực thi thì sử dụng lệnh echo on. ©Copyright 2007 − Hiệu chỉnh M-FILE: MATLAB 105
- M-FILE, or SCRIPT (tt) CẤU TRÚC MỘT CHƯƠNG TRÌNH 1. function[các biến đầu ra] = filename(các đối số) function filename(các đối số) function[các biến đầu ra] = filename 2. % là lời chú thích của chương trình 3. global ten_bien1 ten_bien2 4. Chương trình (các câu lệnh) ©Copyright 2007 MATLAB 107
- M-FILE, or SCRIPT (tt) a. Chương trình có tên ptb2_a.m function x = ptb2(a,b,c) % Giải phương trình bậc hai khi biết hệ số p = [a b c]; roots(p); x0 = -b/(2*a); x = (x0 -10):.1:(x0+10); y = a*x.2 + b*x + 10; plot(x,y), title(‘Do thi bac hai’); Trong cửa sổ lệnh: >> x = ptb2(1,2,1) x = 0 -1 -1 ©Copyright 2007 MATLAB 109