Lập trình với MATLAB

Một phần của tài liệu Luận văn viễn thông Khảo sát một số đặc tính của hệ thống trải phổ dãy trực tiếp DSSS sử dụng MATLAB (Trang 39 - 42)

2.1.4.1. Điều khiển hớng

Các ngôn ngữ lập trình và máy tính có khả năng lập trình đều cho phép điều khiển vòng lặp của các câu lệnh dựa trên những cấu trúc của nó. Vòng lặp điều khiển rất hữu ích và có ứng dụng rất rộng rãi, nó làm cho các phép toán đợc thực hiện một cách thuận tiện hơn và nhanh hơn. MATLAB đa ra các dạng vòng lặp có điều khiển là: vòng lặp for, vòng lặp while, cấu trúc if-else- then và cấu trúc switch-case.

Vòng lặp for: vòng lặp for cho phép một nhóm lệnh thực hiện lặp lại một số lần cố định. Cú pháp của vòng lặp for nh sau:

for x = array

commands % khối các lệnh end

Vòng lặp for có một số đặc điểm sau:

- Các câu lệnh giữa hai trạng thái for end đợc thực hiện một lần cho tất cả các cột của mảng. Tại mỗi lần lặp lại, x đợc gán cho phần tử cột tiếp theo nh trong suốt n lần của vòng lặp, x = array(:, n).

- Vòng lặp for không thể bị kết thúc bằng cách gán lại biến điều khiển n trong vòng lặp.

- Có thể lồng nhiều vòng lặp for vào nhau.

Vòng lặp While: vòng lặp while thực hiện lặp lại một số lệnh một số lần cố định, nhng không biết trớc đợc số lần lặp lại. Cú pháp của vòng lặp while nh sau:

while biểu thức điều kiện khối các lệnh.. end

"khối các lệnh.." giữa hai trạng thái whileend đợc thực hiện lặp đi lặp lại khi tất cả các "biểu thức điều kiển ” là đúng. Thông thờng giá trị của điểu kiện đa ra kết quả là một số, nhng nếu các kết quả đa ra là một mảng thì vẫn hợp lệ. Trong trờng hợp mảng, tất cả các phần tử trong mảng kết quả đa ra phải là đúng.

Cấu trúc if-else-end: khi chúng ta cần những câu lệnh đợc thực hiện theo một điều kiện nào đó, trong ngôn ngữ lập trình, logic này đợc cung cấp bởi cấu trúc if- else-end. Cú pháp của cấu trúc này nh sau:

if biểu thức điều kiện khối các lệnh end

Khối các lệnh giữa hai trạng thái ifend đợc thực hiện khi tất cả các biểu thức điểu kiện là đúng. Trong trờng hợp điều kiện bao gồm các điều kiện con, thì tất cả các điều kiện con đợc tính và trả về một trạng thái logic của điều kiện.

Cấu trúc switch-case: khi một chuỗi các lệnh đánh giá dựa trên một biểu thức thử hoặc biểu thức điều kiện với nhiều giá trị thử khác nhau, ngời ta th- ờng dùng cấu trúc switch-case. Cấu trúc switch-case có dạng nh sau:

switch biểu thức điều kiện case giá trị thử 1

khỗi lệnh 1

case {giá trị thử 2, giá trị thử 3, giá trị thử 4) khối lệnh 2

otherwise khỗi lệnh 3 end

Biểu thức điều kiện ở đây phải là dạng số hoặc dạng chuỗi, nếu biểu thức điều kiện là dạng số thì lệnh case sẽ thử xem giá trị của biểu thức đó có bằng giá trị thử i hay không. Nếu biểu thức điều kiện là một chuỗi thì lệnh case sẽ so sánh chuỗi đó với giá trị thử i. Trong cấu trúc lệnh trên, biểu thức điều kiện đợc đem ra so sánh với giá trị thử 1, nếu chúng bằng nhau thì khỗi lệnh đầu tiên đợc thực hiện và các khỗi lệnh tiếp theo cho đến trớc trạng thái end đợc bỏ qua, nếu chúng không bằng nhau thì điều kiện tiếp tục đợc đem so sánh với giá trị thử 2, 3 và 4, nếu một trong số chúng bằng với biểu thức điều kiện thì khối lệnh hai đợc thực hiện. Nếu tất cả các lệnh so sánh của case đều không đúng thì khối lệnh 3 đợc thực hiện. Chú ý rằng trong cấu trúc switch-case có ít nhất một nhóm lệnh phải đợc thực hiện.

2.1.4.2. Một số cấu trúc dữ liệu khác

Mảng nhiều chiều: mảng nhiều chiều trong MATLAB là các mảng có từ hai chỉ số dới trở lên, chúng có thể đợc tạo từ các hàm zeros, ones, rand, hoặc randn với từ hai argument trở lên.

Mảng tế bào: mảng tế bào là những mảng MATLAB mà các phần tử của nó là các tế bào. Mỗi tế bào trong mảng tế bào chứa các kiểu dữ liệu của MATLAB bao gồm mảng số, văn bản, đối tợng đặc trng, các mảng tế bào và cấu trúc. Ví dụ một tế bào của mảng tế bào có thể là mảng số, loại khác là kiểu chuỗi văn bản, hoặc vector các giá trị số phức. Các mảng tế bào có thể đ- ợc xây dựng với số chiều lớn hơn hai, tuy nhiên để cho thuận tiện, ngời ta lấy số chiều là 2. MATLAB cung cấp các công cụ cho phép xây dựng và hiển thị 40

mảng tế bào; tổ hợp và khôi phục mảng tế bào; truy nhập vào trong mảng tế bào...

Kí tự và dạng văn bản: sự tiện ích của MATLAB là xử lý với các con số. Tuy nhiên, MATLAB cũng cho phép làm việc với biến text đợc dùng đến nh là xâu kí tự, hoặc đơn giản là các xâu. Xâu kí tự trong MATLAB là mảng của các giá trị ASCII mà quy ớc của nó là các kí tự. Một xâu kí tự đơn giản là dạng văn bản, đợc đặt giữa hai dấu nháy đơn. Mỗi kí tự trong xâu là một phần tử của mảng, với mỗi phần tử chiếm hai bytes.

Cấu trúc: cấu trúc là những đối tợng MATLAB có tên "bộ chứa dữ liệu"còn gọi là field. Nh mọi phần tử của mảng tế bào, trờng cấu trúc có thể có bất cứ một kiểu dữ liệu nào. Chúng khác ở chỗ cấu trúc trờng đợc truy nhập bằng tên phổ biến hơn là chỉ số, và không có sự hạn chế nào về chỉ số cũng nh cấu hình của các trờng cấu trúc. Cũng giống nh mảng tế bào, cấu trúc có thể đợc nhóm lại với nhau tạo thành mảng và mảng tế bào. Một cấu trúc đơn là một mảng cấu trúc 1ì1.

2.1.4.3. Script và Function

Trong MATLAB, lệnh yêu cầu thực hiện tại dấu nhắc của MATLAB trong cửa sổ lệnh đợc thực hiện nhanh và hiệu quả. Tuy nhiên khi số lệnh tăng lên hoặc khi ta 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'.

Để tạo một script M-file, chọn New trong File và chọn M-file. Thủ tục này sẽ tạo ra màn hình soạn thảo và lúc này có thể đánh đợc các lệnh của MATLAB trong đó. Dữ liệu có thể đợc ghi và lu giữ bằng cách chọn Save trong File.

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, 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, còn lệnh echo off thì có tác dụng ngợc lại. (adsbygoogle = window.adsbygoogle || []).push({});

Vì những ứng dụng của script file, MATLAB cũng đa ra một số hàm đặc biệt có ích khi sử dụng trong M-file.

Functions: function là các M-file mà dữ liệu nhập vào là biến và dữ liệu trả ra là hàm. Tên của M-file và của function phải giống nhau. Các function làm việc với các biến trong không gian làm việc của chính nó, tách biệt với không gian làm việc mà ta truy nhập tại dấu nhắc lệnh của MATLAB.

Một phần của tài liệu Luận văn viễn thông Khảo sát một số đặc tính của hệ thống trải phổ dãy trực tiếp DSSS sử dụng MATLAB (Trang 39 - 42)