Các biến trong môi trường MATLAB. Lập trình chức năng M

Ode23("lotka2",,); plot(t,y) Lệnh chung khai báo các biến toàn cục ALPHA và BETA và do đó có sẵn trong hàm lotka.m. Vì vậy chúng có thể được thay đổi từ dòng lệnh, và sẽ thu được các giải pháp mới mà không cần chỉnh sửa tệp M lotka.m. Để làm việc với các biến toàn cục, bạn phải: khai báo biến là toàn cục trong mỗi hàm M yêu cầu biến này. Để một biến không gian làm việc có tính toàn cục, bạn phải khai báo nó là toàn cục từ dòng lệnh; trong mỗi hàm, hãy sử dụng lệnh chung trước khi biến xuất hiện lần đầu tiên; Nên chỉ định lệnh chung ở đầu tệp M. Tên biến toàn cục thường dài hơn và có ý nghĩa hơn tên biến cục bộ và thường sử dụng chữ in hoa. Đây là tùy chọn nhưng được khuyến nghị để đảm bảo mã MATLAB dễ đọc và giảm nguy cơ vô tình ghi đè một biến toàn cục. Các biến đặc biệt Một số hàm M trả về các biến đặc biệt chơi vai trò quan trọng khi làm việc trong môi trường hệ thống MATLAB: Kết quả mới nhất; nếu biến đầu ra không được xác định là ans thì MATLAB sẽ sử dụng biến ans. Độ chính xác của dấu phẩy động; eps được xác định bởi độ dài của phần định trị và đối với PC eps = 2,220446049250313e-016 Số lớn nhất dấu phẩy động, biểu diễn realmax trong máy tính; cho PC realmax = 1.797693134862316e+308. Số dấu phẩy động nhỏ nhất có thể được biểu thị bằng realmin trong máy tính; đối với PC realmin = 2.225073858507202e-308. Biến đặc biệt cho số p: pi pi=3.141592653589793e+000. 70 Biến đặc biệt để biểu thị đơn vị ảo i, j Biến đặc biệt để biểu thị ký hiệu vô cực? Một biến đặc biệt để biểu thị giá trị NaN không xác định - kết quả của các phép toán thuộc loại: 0/0, inf/inf. Một biến đặc biệt để chỉ ra loại máy tính đang được sử dụng; dành cho PC - PCWIN. Một biến đặc biệt để chỉ ra số lần thực hiện các phép tính dấu phẩy động. Một biến đặc biệt để lưu trữ số phiên bản của phiên bản đã sử dụng của hệ thống MATLAB. Các hàm M tương ứng tạo ra các biến đặc biệt này nằm trong danh mục elmat và được hỗ trợ bởi trợ giúp trực tuyến. Có sáu kiểu dữ liệu được định nghĩa trong MATLAB các loại cơ bản dữ liệu, mỗi dữ liệu đó là mảng đa chiều. Sáu lớp là double, char, thưa thớt, uint8, cell và struct. Phiên bản hai chiều của các mảng này được gọi là ma trận, đó là lý do MATLAB lấy tên là MATRIX LAB. Sơ đồ thành viên của một đối tượng hệ thống MATLAB cụ thể trong một trong các lớp trông như thế này (Hình 3.1): Hình 3.1 71 Rất có thể bạn sẽ chỉ phải xử lý hai trong số các kiểu dữ liệu sau: mảng kép số chính xác (gấp đôi) và một mảng ký tự (char) hoặc chỉ một chuỗi. Điều này là do tất cả các phép tính trong MATLAB đều được thực hiện với độ chính xác kép và hầu hết các hàm hoạt động trên các mảng hoặc chuỗi có độ chính xác kép. Các kiểu dữ liệu khác dành cho các ứng dụng đặc biệt như làm việc với ma trận thưa thớt (thưa thớt), xử lý hình ảnh (uint8), làm việc với mảng nhiều chiều (ô và cấu trúc). Bạn không thể đặt loại biến thành số hoặc mảng. Những loại này được gọi là ảo và chỉ phục vụ cho các biến nhóm có thuộc tính chung. Loại uint8 được thiết kế để lưu trữ dữ liệu hiệu quả trong bộ nhớ. Chỉ các thao tác lập chỉ mục và thay đổi kích thước cơ bản mới có thể được áp dụng cho dữ liệu thuộc loại này, nhưng không phép toán. Để làm được điều này, các mảng như vậy phải được chuyển đổi thành kiểu double. Tạo các kiểu của riêng bạn và thêm các phương thức cho các kiểu có sẵn. Bảng bên dưới chứa kiểu dữ liệu thứ bảy - UserObject. ngôn ngữ MATLAB cho phép bạn tạo các kiểu dữ liệu của riêng mình và làm việc với chúng theo cách tương tự như các kiểu có sẵn. Đối với các kiểu dữ liệu có sẵn, bạn có thể ghi đè một phương thức giống như cách bạn thực hiện đối với một đối tượng. Ví dụ: để chỉ định thao tác sắp xếp cho một mảng kiểu uint8, bạn cần tạo một phương thức (sort.m hoặc Sort.mex) và đặt nó vào một thư mục đặc biệt @uint8. Bảng sau mô tả các loại dữ liệu chi tiết hơn. Mô tả ví dụ về lớp Mảng sốđộ chính xác kép (đây là kiểu phổ biến nhất [ 1 2; 3 4] Biến kép kiểu 5 + 6i trong MATLAB 72 Một mảng các ký tự (mỗi ký tự dài 16 bit), thường được gọi là chuỗi Char "Xin chào". (chỉ hai chiều) Cấu trúc thưa thớt được sử dụng để lưu trữ ma trận với một số lượng nhỏ các phần tử khác 0, cho phép Speye Speye(5) chỉ sử dụng các phần tử khác 0. hầu hết bộ nhớ cần thiết để lưu trữ ma trận hoàn chỉnh. Ma trận thưa thớt yêu cầu sử dụng các phương pháp đặc biệt để giải quyết vấn đề. Mảng ô. Các phần tử của mảng này chứa các mảng khác. Mảng ô cho phép Ô (17 mắt "xin chào" (2)) kết hợp các dữ liệu liên quan, có thể Đa dạng về kích cỡ, thành một cấu trúc duy nhất. Một loạt các bản ghi. Nó bao gồm tên trường. A.ngày = 12; A.color = Bản thân các trường có thể chứa mảng. Tương tự như Cấu trúc "Đỏ"; A.mat = mảng ô, mảng magic(3); hồ sơ kết hợp dữ liệu liên quan và thông tin về chúng. 73 Mảng số nguyên không dấu 8 bit. Nó cho phép bạn lưu trữ các số nguyên trong phạm vi 0 đến 255 trong 1/8 bộ nhớ mà Uint8 Uint8 (ma thuật (3)) yêu cầu cho một mảng có độ chính xác kép. Không có phép toán nào được xác định cho các mảng này. Kiểu dữ liệu do người dùng xác định nội tuyến ("sin(x)"). Mô tả sơ đồ. Các đường kết nối trong sơ đồ (Hình 3.1) xác định xem một kiểu dữ liệu cụ thể có thuộc về một hoặc nhiều lớp hay không. Ví dụ. Một ma trận kiểu thưa cũng có kiểu double và kiểu số. Các toán tử isa(S",sparse") isa(S",double") isa(S",numeric") trả về giá trị 1 (true), tức là S là ma trận số thưa thớt có độ chính xác kép. Lưu ý rằng loại mảng nằm ở đầu sơ đồ. Điều này có nghĩa là tất cả dữ liệu của hệ thống MATLAB đều là mảng. Mỗi loại dữ liệu có thể được liên kết với các hàm và toán tử xử lý riêng của nó, hay nói cách khác là các phương thức. Các kiểu dữ liệu con, nằm bên dưới kiểu dữ liệu gốc trong sơ đồ, cũng được hỗ trợ bởi các phương thức của dữ liệu gốc. Do đó, một mảng kiểu double được hỗ trợ bởi các phương thức được sử dụng cho kiểu số. Bảng này hiển thị một số phương thức sau: Phương thức lớp 74 Tính toán kích thước (kích thước), chiều dài (chiều dài), kích thước (ndims), liên kết mảng (), chuyển vị (transpose), lập chỉ mục mảng đa chiều (subsindex), ghi đè (định hình lại) và hoán vị (hoán vị) kích thước của mảng nhiều chiều. Lập chỉ mục bằng hình cong - Mảng ô ô (e1,…,en) và phân cách các phần tử danh sách bằng dấu phẩy. Hàm chuỗi(strcmp, thấp hơn), tự động chuyển đổi Chuỗi ký tự thành gõ đôi sử dụng các phương thức của lớp kép. số học và các phép toán logic, hàm toán học, hàm toán học kép, hàm số ma trận. Tìm kiếm (find), xử lý số phức (thực, ảo), hình thành vectơ, chọn hàng, cột, khối con mảng, khai triển vô hướng. Các phép toán thưa trên ma trận thưa. Mảng bản ghi Truy cập vào nội dung của field.field (Dấu phân cách cấu trúc của các thành phần danh sách là dấu phẩy). Hoạt động lưu trữ (thường được sử dụng nhất với Hộp công cụ xử lý hình ảnh Uint8 PPP) UserObject Các mảng trống do người dùng xác định. Phiên bản đầu Các hệ thống MATLAB cho phép một dạng duy nhất của một mảng trống có kích thước 0x0, được ký hiệu là . MATLAB hỗ trợ các mảng có một, nhưng không phải tất cả, kích thước bằng 0, nghĩa là các mảng có kích thước 1x0, 10x0x20 hoặc được xác định là trống. Dấu ngoặc vuông tiếp tục biểu thị mảng 0x0. Các mảng trống có kích thước khác có thể được tạo bằng cách sử dụng các hàm số 0, số 1, rand hoặc mắt. Ví dụ: để tạo một mảng trống có kích thước 0x5, bạn có thể sử dụng toán tử gán E = zeros(0,5). 75 Mục đích chính của mảng trống là để bất kỳ thao tác nào được xác định trên một mảng (ma trận) có kích thước m?n sẽ xác định kết quả chính xác cho trường hợp khi m hoặc n bằng 0. Kích thước của mảng kết quả (ma trận) phải tương ứng với giá trị của hàm được tính bằng 0. Ví dụ: toán tử C = yêu cầu mảng A và B có cùng số hàng. Vì vậy, nếu mảng A có kích thước m?n và B có kích thước m?p thì C là mảng có kích thước m?(n+p). Kết quả sẽ đúng nếu bất kỳ tham số m, n hoặc p nào bằng 0. Nhiều phép toán trong MATLAB tạo ra một vectơ hàng hoặc vectơ cột. Trong trường hợp này, kết quả có thể là vectơ hàng trống r = zeros(1, 0) hoặc vectơ cột trống C = zeros(0, 1). MATLAB 5 trở lên hỗ trợ các quy tắc hệ thống MATLAB 4 cho các câu lệnh if và while. Ví dụ, điều hành có điều kiện gõ if A, S1, else, S0, end thực thi câu lệnh S0 khi A là một mảng trống. Một số hàm MATLAB như sum, prod, min và max làm giảm tính chiều của kết quả: nếu đối số là một mảng thì kết quả là một vectơ; nếu đối số là vectơ thì kết quả là vô hướng. Đối với các hàm này, nếu mảng đầu vào trống thì sẽ thu được kết quả như sau: sum() = 0 ; sản phẩm() = 1 ; max() = ; phút() = . 3.4 Các toán tử của hệ thống MATLAB 5. Kết hợp các toán tử thành biểu thức số học. Các hàm dựng sẵn Toán tử MATLAB Toán tử MATLAB thuộc ba loại: 76 toán tử số học cho phép bạn xây dựng các biểu thức số học và thực hiện các phép tính số. Toán tử quan hệ cho phép bạn so sánh các toán hạng số. các toán tử logic cho phép bạn xây dựng các biểu thức logic. Toán tử logic có mức độ ưu tiên thấp nhất so với các toán tử quan hệ và số học. Toán tử số học. Khi làm việc với một dãy số, các mức độ ưu tiên sau đây trong số các phép toán số học được thiết lập: cấp 1: chuyển đổi theo phần tử (."), lũy thừa theo phần tử (.^), chuyển đổi ma trận liên hợp Hermitian ("), lũy thừa ma trận ( ^); bậc 2: phép cộng một ngôi (+), phép trừ một ngôi (-); cấp độ 3: nhân mảng (.*), chia phải (./), chia mảng trái (.\), nhân ma trận (*), hệ giải Các phương trình tuyến tính, thao tác (/), thao tác (\); mức 4: cộng (+), trừ (-); cấp độ 5: toán tử tạo mảng (:). Trong mỗi cấp độ, các toán tử có mức độ ưu tiên như nhau và được đánh giá theo thứ tự từ trái sang phải. Thứ tự mặc định có thể được thay đổi bằng dấu ngoặc đơn. Ví dụ. Cho 2 vectơ A = ; B = ; Kết quả thực hiện toán tử C=A./B. ^2 bằng C = 0,7500 9,0000 0,2000 và toán tử C = (A./B). ^2 bằng C = 2,2500 81,0000 1,0000. Như bạn có thể thấy, kết quả hoàn toàn khác nhau. Toán tử số học cho phép sử dụng các biểu thức chỉ số. Ví dụ: 77 b = sqrt (A(2)) + 2*B (1) b=7 Các toán tử số học của hệ thống MATLAB, theo quy luật, hoạt động với các mảng có cùng kích thước. Đối với vectơ và mảng hình chữ nhật, cả hai toán hạng phải là cùng cỡ, ngoại trừ trường hợp duy nhất trong đó một trong số chúng là vô hướng. Nếu một trong các toán hạng là vô hướng còn toán hạng kia thì không, MATLAB giả định rằng toán hạng vô hướng được mở rộng đến kích thước của toán hạng thứ hai và phép toán đã chỉ định sẽ được áp dụng cho từng phần tử. Hoạt động này được gọi là mở rộng vô hướng. Các toán tử quan hệ. 6 toán tử quan hệ sau đây được định nghĩa trong MATLAB:< Меньше <= Меньше или равно >Lớn hơn > = Lớn hơn hoặc bằng == Bằng giống hệt ~ = Không bằng Các toán tử quan hệ thực hiện so sánh từng phần tử của hai mảng có kích thước bằng nhau. Đối với vectơ và mảng hình chữ nhật, cả hai toán hạng phải có cùng kích thước, trừ khi một trong số chúng là số vô hướng. Trong trường hợp này, MATLAB so sánh đại lượng vô hướng với từng phần tử của toán hạng kia. Các vị trí mà mối quan hệ này đúng sẽ nhận giá trị 1, trong đó sai - 0. Các toán tử quan hệ thường được sử dụng để thay đổi trình tự thực hiện các câu lệnh chương trình. Vì vậy, chúng thường được sử dụng nhiều nhất trong phần thân của các câu lệnh if, for, while, switch. Các toán tử quan hệ luôn được thực thi từng phần tử. Ví dụ. Hãy so sánh hai mảng bằng điều kiện A

Lập trình cơ bản trong MatLab

Namestnikov S.M. / Tuyển tập bài giảng: Đại học Kỹ thuật Bang Ulyanovsk, Ulyanovsk. - 2011

Giới thiệu

Chương 1. Cấu trúc chương trình. Các phép toán cơ bản và kiểu dữ liệu

1.1. Cấu trúc chương trình MatLab

1.2. Biến đơn giản và kiểu dữ liệu cơ bản trong MatLab

1.3. Các phép tính số học với các biến đơn giản

1.4. Các hàm toán học cơ bản của MatLab

1.5. Vectơ và ma trận trong MatLab

1.6. Các phép toán trên ma trận và vectơ

1.7. Cấu trúc trong MatLab

1.8. Ô trong MatLab

Chương 2. Câu lệnh điều kiện và vòng lặp trong MatLab

2.1. Câu lệnh if có điều kiện

2.2. Câu lệnh chuyển đổi có điều kiện

2.3. Toán tử vòng lặp while

2.4. Toán tử vòng lặp for

Chương 3. Làm việc với đồ thị trong MatLab

3.1. hàm vẽ đồ thị

3.2. Thiết kế biểu đồ

3.3. Hiển thị đồ thị 3D

3.4. Hiển thị ảnh bitmap

Chương 4. Lập trình hàm trong MatLab

4.1. Thứ tự định nghĩa và gọi hàm

4.2. Phạm vi biến đổi

Chương 5. Làm việc với file trong MatLab

5.1. chức năng lưu và tải

5.2. hàm fwrite và fread

5.3. hàm fscanf và fprintf

5.4. chức năng imread và imwrite

Giới thiệu

Trong số rất nhiều gói toán học hiện có như Mathematica, MathCad, v.v., hệ thống MatLab chiếm vị trí dẫn đầu nhờ ngôn ngữ lập trình tích hợp tiện lợi để thực hiện nhiều thuật toán toán học và các bài toán mô hình hóa toán học. Ngoài ra, gói này còn có một công cụ mô hình hóa trực quan, Simulink, cho phép bạn xây dựng và khám phá các mô hình toán học mà không cần phải lập trình chúng.

Hướng dẫn này xem xét ngôn ngữ lập trình nội bộ MatLab, ngôn ngữ mang lại tính linh hoạt, phong phú về chức năng và sự thuận tiện nhất trong việc giải và nghiên cứu các vấn đề toán học. Khi trình bày tài liệu, ưu tiên dành cho các cấu trúc ngôn ngữ đơn giản nhất, bằng cách nghiên cứu xem cấu trúc nào có thể tạo ra các thuật toán toán học đa dạng và không tầm thường nhất.

Chương 1. Cấu trúc chương trình. Các phép toán cơ bản và kiểu dữ liệu

Bước đầu tiên để tạo ra các thuật toán toán học là nghiên cứu cấu trúc của chương trình và tập hợp các phép toán có sẵn cho ngôn ngữ lập trình. Đặc biệt, chương này sẽ xem xét các phép toán và hàm của gói MatLab liên quan đến việc xử lý cả biến vô hướng và ma trận.



Cấu trúc chương trình MatLab

Theo quy định, mỗi chương trình trong MatLab là một hàm và bắt đầu bằng từ khóa function, theo sau là tên của nó, cách nhau bằng dấu cách. Ví dụ,

chức năng Lab1
a = 5;
b = 2;
c = a*b;

Chương trình này chứa trong một hàm có tên Lab1 và tính tích của hai biến a và b. Khi lưu chương trình vào m-file, nên chỉ định tên tệp khớp với tên hàm, tức là. trong trường hợp này - Lab1.

Cần lưu ý rằng nhiều chức năng bổ sung có thể được chỉ định trong một m-file. Để làm điều này, chỉ cần viết một hàm từ khóa khác vào cuối danh sách chương trình chính và đặt tên cho nó, ví dụ:

chức năng Lab1
a = 5;
b = 2;
c = a*b;
out_c(c); % gọi hàm out_c()

hàm out_c(arg_c) % định nghĩa của hàm out_c()
phân phối (arg_c);

Lưu ý rằng hàm out_c() có thể được gọi trong chương trình chính trước khi nó được xác định. Đây là một tính năng của ngôn ngữ MatLab cho phép người lập trình không phải lo lắng về trình tự xác định hàm. Trong ví dụ đã cho, hàm out_c() có một tham số đầu vào gọi là arg_c, được in ra màn hình (trong cửa sổ lệnh MatLab) bằng hàm disp() tích hợp. Kết quả khi chương trình trên được thực thi, giá trị của biến c sẽ hiển thị trên cửa sổ lệnh MatLab.

Các chức năng bổ sung cũng có thể được cung cấp trong các m-file riêng biệt. Ví dụ, nếu cần mô tả một hàm trong một m-file và gọi nó trong một tệp khác, thì điều này có thể được thực hiện như sau.

Tệp thứ 1 (Lab1.m)

Khi hàm Lab1 được thực thi, MatLab sẽ gọi hàm bình phương từ tệp Square.m. Việc này sẽ được thực hiện tự động, bởi vì... Các hàm dựng sẵn của ngôn ngữ MatLab cũng được xác định và gọi từ các tệp, tên của chúng, theo quy luật, tương ứng với tên của các hàm được gọi. Cũng lưu ý rằng hàm Square() không chỉ nhận hai đối số a và b mà còn trả về tích của chúng bằng biến res. Cú pháp đã trình bày nên được sử dụng bất cứ khi nào kết quả tính toán cần được trả về chương trình chính. Chương thứ tư của sổ tay này mô tả chi tiết hơn cách xây dựng các lệnh gọi hàm để triển khai các thuật toán khác nhau.

Biến đơn giản và kiểu dữ liệu cơ bản trong MatLab

Việc tạo một chương trình thường bắt đầu bằng việc xác định các biến và cách biểu diễn dữ liệu. Vì vậy, để tổ chức chính xác việc mô tả dữ liệu chương trình, bạn cần biết cách đặt biến trong MatLab và những loại biến nào có thể sử dụng được.

Kiểu dữ liệu đơn giản và phổ biến nhất là số. Trong MatLab, một số được lưu trữ trong một biến có tên duy nhất, ví dụ:

định nghĩa một biến có tên a và gán cho nó giá trị 5. Theo mặc định, biến a là biến thực (kiểu double), tức là. có thể lấy các giá trị phân số, ví dụ:

đặt giá trị của biến a thành -7,8. Bạn có thể thay đổi loại biến bằng cách chỉ định loại số được gán bằng từ khóa thích hợp, ví dụ:

sẽ gán số 5 làm giá trị nguyên 16 bit. Kết quả của thao tác này là loại biến a sẽ tương ứng với int16.

Các kiểu dữ liệu có sẵn trong MatLab được trình bày trong Bảng. 1.1.

Bảng 1.1. Các kiểu dữ liệu cơ bản trong MatLab

Loại mặc định là double, có độ chính xác cao nhất khi biểu thị số thực và do đó là loại phổ quát. Tuy nhiên, nếu cần tiết kiệm bộ nhớ máy tính, bạn có thể tự mình chỉ định loại mong muốn.

Điều cuối cùng bạn nên biết khi xác định biến là quy tắc xác định tên của chúng. Trong MatLab, tên biến chỉ có thể được chỉ định bằng chữ cái Latinh, số và ký hiệu '_'. Hơn nữa, ký tự đầu tiên trong tên phải tương ứng với một chữ cái trong bảng chữ cái Latinh. Cũng cần lưu ý rằng những cái tên

đối số = 1;
Arg = 2;
ARG = 3;

đây là ba tên khác nhau, tức là ba biến khác nhau có giá trị lần lượt là 1, 2 và 3. Ví dụ này cho thấy MatLab phân biệt chữ hoa chữ thường trong tên biến.

Khi lập trình, tốt nhất là chỉ định tên biến có ý nghĩa để giúp bạn hiểu chúng đại diện cho dữ liệu gì. Điều này tránh nhầm lẫn khi xây dựng các chương trình lớn.

3.3. Thực hiện chức năng M. Danh sách đối số. Các loại lập luận. Loại dữ liệu

Hàm M có thể được gọi từ dòng lệnh của hệ thống MATLAB hoặc từ các tệp M khác, đảm bảo chỉ định tất cả các thuộc tính cần thiết - đối số đầu vào trong ngoặc đơn, đối số đầu ra trong dấu ngoặc vuông.

Việc chỉ định một cái tên. Khi một tên mới xuất hiện, MATLAB sẽ kiểm tra:

  1. Tên mới có phải là tên biến không?
  2. Tên này có phải là tên của một hàm con, tức là một hàm nằm trong cùng một tệp M và được gọi không?
  3. Đây có phải là tên của một chức năng riêng tư nằm trong thư mục riêng tư. Thư mục này chỉ có thể truy cập được đối với các tệp M nằm ở cấp cao hơn.
  4. Đây có phải là tên của một hàm trong đường dẫn hệ thống MATLAB. Trong trường hợp này, hệ thống sử dụng tệp M xuất hiện đầu tiên trong đường dẫn truy cập.

Trong trường hợp tên trùng lặp, MATLAB sử dụng tên theo hệ thống phân cấp 4 cấp độ trên. Cần lưu ý rằng trong MATLAB 5 có thể định nghĩa lại hàm theo các quy tắc lập trình hướng đối tượng.

Gọi một hàm. Khi bạn gọi một hàm M, MATLAB sẽ dịch hàm đó thành mã giả và tải nó vào bộ nhớ. Điều này tránh phân tích lại. Mã giả vẫn còn trong bộ nhớ cho đến khi lệnh xóa được sử dụng hoặc phiên kết thúc.

Các sửa đổi sau đây đối với lệnh xóa là hợp lệ:

Lệnh này phân tích tệp M Average.m và lưu trữ mã giả kết quả trong một tệp có tên Average.p. Điều này tránh việc phân tích cú pháp lặp đi lặp lại trong một phiên mới. Vì quá trình phân tích cú pháp quá nhanh nên việc sử dụng lệnh pcode ít ảnh hưởng đến tốc độ thực thi.
Việc sử dụng mã P được khuyến khích trong hai trường hợp:

  • khi bạn cần phân tích một số lượng lớn tệp M cần thiết để hiển thị các đối tượng đồ họa trong các ứng dụng liên quan đến phát triển giao diện người dùng đồ họa; trong trường hợp này, việc sử dụng mã P mang lại khả năng tăng tốc đáng kể;
  • khi người dùng muốn ẩn các thuật toán được triển khai trong tệp M.

Quy tắc truyền đối số. Theo quan điểm của người lập trình, hệ thống MATLAB chuyển một đối số theo giá trị của nó. Trên thực tế, chỉ những đối số thay đổi trong quá trình hoạt động của hàm này mới được truyền dưới dạng giá trị. Nếu một hàm không thay đổi giá trị của đối số mà chỉ sử dụng nó để tính toán thì đối số sẽ được truyền theo tham chiếu, điều này cho phép tối ưu hóa việc sử dụng bộ nhớ.

Không gian làm việc chức năng. Mỗi hàm M được phân bổ một vùng bộ nhớ bổ sung không trùng với không gian làm việc của hệ thống MATLAB. Vùng này được gọi là vùng làm việc của hàm. Mỗi chức năng có không gian làm việc riêng.

Khi làm việc với MATLAB, bạn chỉ có thể truy cập các biến nằm trong không gian làm việc của hệ thống hoặc trong không gian làm việc của hàm. Nếu một biến được khai báo là toàn cục thì nó có thể được coi là thuộc về một số không gian làm việc.

Kiểm tra số lượng đối số. Hàm nargin và nargout cho phép bạn xác định số lượng đối số đầu vào và đầu ra của hàm được gọi. Thông tin này sau đó có thể được sử dụng trong các câu lệnh điều kiện để thay đổi tiến trình tính toán.

Ví dụ:

hàm c = testarg1(a,b)
if(nargin == 1)
c = a.^2;
elseif (nargin == 2)
c = + b;
kết thúc

Khi được cung cấp một đối số đầu vào duy nhất, hàm sẽ tính bình phương của biến đầu vào; khi hai đối số được đưa ra, một phép cộng được thực hiện.

Hãy xem xét một ví dụ phức tạp hơn - chọn một phần của chuỗi ký tự trước dấu phân cách, có thể là khoảng trắng hoặc bất kỳ ký tự nào khác. Khi được cung cấp một đối số đầu vào duy nhất, hàm phải chọn phần của chuỗi trước dấu phân cách, theo mặc định là khoảng trắng; và tất cả các khoảng trắng ở đầu dòng sẽ bị xóa. Khi chỉ định hai đối số, đối số thứ hai phải là ký tự phân cách.

Hàm này được đóng gói dưới dạng M-function strtok, nằm trong thư mục strfun.

Hàm phải có ít nhất một đối số đầu vào

Nếu chỉ có một đối số đầu vào thì dấu cách sẽ được sử dụng làm dấu phân cách.

Xác định phần đầu của chuỗi con đã chọn

Xác định phần cuối của chuỗi con đã chọn

Làm nổi bật phần còn lại của dòng

Lưu ý rằng thứ tự của các đối số trong danh sách đầu ra là quan trọng. Khi gọi hàm M, nếu không có đối số đầu ra nào được chỉ định thì đối số đầu tiên sẽ là đầu ra theo mặc định. Để tạo và xuất các đối số tiếp theo, cần tổ chức lệnh gọi hàm M thích hợp.

Danh sách đối số.

Các hàm varargin và varargout cho phép bạn truyền số lượng đối số đầu vào và đầu ra tùy ý. Hệ thống MATLAB gói tất cả các đối số đầu vào và đầu ra được chỉ định vào một mảng ô. Mỗi ô có thể chứa bất kỳ loại và số lượng dữ liệu nào.

Ví dụ
Hàm testvar chấp nhận bất kỳ số lượng vectơ hai phần tử nào làm đối số đầu vào và hiển thị các đường nối chúng.

hàm testvar(varargin)

với i = 1:length(varargin)
x(i) = varargin(i)(1);
y(i) = varargin(i)(2);
kết thúc

xmin = min(0, min(x));
ymin = min(0, min(y));
trục()
cốt truyện(x,y)

Do đó, hàm testvar có thể hoạt động với danh sách đầu vào có độ dài khác nhau.

Ví dụ:

testvar(, , , , , )
testvar([-1 0], , , )

Hình thành mảng đầu vào varargin. Vì danh sách varargin lưu trữ các đối số đầu vào trong một mảng ô nên cần sử dụng chỉ mục ô để truy xuất dữ liệu. Một chỉ mục ô có hai thành phần:
- chỉ số trong dấu ngoặc nhọn;
- chỉ số trong ngoặc đơn.

Ví dụ:

y(i)= varargin(i)(2);
Ở đây, chỉ mục trong dấu ngoặc nhọn (i) cho biết địa chỉ của ô thứ i của mảng varargin và chỉ mục trong dấu ngoặc đơn (2) cho biết phần tử thứ hai trong ô.

Hình thành mảng đầu ra varargout. Nếu có số lượng đối số đầu ra tùy ý, chúng phải được đóng gói vào một mảng ô varargout. Để xác định số lượng đối số đầu ra của một hàm, bạn cần sử dụng hàm nargout.

Ví dụ
Hàm sau lấy đầu vào là một mảng hai cột, trong đó cột đầu tiên là tập hợp các giá trị tọa độ x và cột thứ hai là tập hợp các giá trị tọa độ y. Hàm chia mảng thành các vectơ riêng lẻ, có thể được chuyển đến hàm testvar làm đầu vào.

hàm = testvar2(arrayin)
vì i = 1:nargout
varargout(i) = arrayin(i, :);
kết thúc

Câu lệnh gán trong vòng lặp for sử dụng cú pháp gán mảng ô. Phía bên trái của toán tử gán sử dụng dấu ngoặc nhọn để biểu thị rằng dữ liệu chuỗi mảng đang được gán cho ô.

Các câu lệnh sau có thể được sử dụng để gọi hàm testvar2:

một = ";
= testvar2(a)

p1 = 16
p2 = 2 7
p3 = 3 8
p4 = 4 9
p5 = 5 0

Sử dụng mảng ô trong danh sách đối số. Các đối số varargin và varargout phải là đối số cuối cùng trong danh sách đối số tương ứng của chúng. Khi gọi một hàm, các đối số trước varargout phải được đánh giá trong hàm.

Ví dụ
Các tiêu đề hàm bên dưới hiển thị cách sử dụng chính xác danh sách varargin và varargout:

hàm = example1(a,b,varargin)
hàm = example2(x1,y1,x2,y2,flag)

Các loại biến.

Biến cục bộ và toàn cục. Việc sử dụng các biến trong M-file không khác gì việc sử dụng các biến trên dòng lệnh, cụ thể là:

  • các biến không yêu cầu khai báo; Trước khi gán giá trị cho một biến, bạn phải đảm bảo rằng tất cả các biến ở vế phải đều đã được gán giá trị;
  • bất kỳ thao tác gán nào cũng tạo ra một biến nếu cần thiết hoặc thay đổi giá trị của biến hiện có;
  • tên biến bắt đầu bằng một chữ cái, theo sau là bất kỳ số chữ cái, số và dấu gạch dưới nào; MATLAB phân biệt chữ hoa và chữ thường;
  • Tên biến không được vượt quá 31 ký tự. Chính xác hơn, tên có thể dài hơn nhưng MATLAB chỉ tính đến 31 ký tự đầu tiên.

Thông thường, mỗi hàm M được chỉ định dưới dạng tệp M có các biến cục bộ riêng, khác biệt với các biến của các hàm và biến không gian làm việc khác. Tuy nhiên, nếu một số hàm và không gian làm việc khai báo một biến toàn cục thì tất cả chúng đều có chung một bản sao của biến đó. Bất kỳ phép gán nào cho biến này đều áp dụng cho tất cả các hàm mà nó được khai báo toàn cục.

Ví dụ.
Giả sử chúng ta muốn nghiên cứu ảnh hưởng của các hệ số a và b đối với mô hình động vật ăn thịt-con mồi được mô tả bằng phương trình Lotke-Volterra:

Hãy tạo một tệp M lotka.m:

hàm yp = lotka(t, y)
%LOTKA của phương trình Lotke-Volterra cho mô hình động vật ăn thịt-con mồi

BETA ALPHA toàn cầu
yp = ;

Sau đó, thông qua dòng lệnh, nhập toán tử:

BETA ALPHA toàn cầu
ALPHA = 0,01;
BETA = 0,02;
= ode23("lotka2",,);
cốt truyện(t,y)

Lệnh chung khai báo các biến ALPHA và BETA toàn cục và do đó có sẵn trong hàm lotka.m. Do đó, chúng có thể được thay đổi từ dòng lệnh và sẽ thu được các giải pháp mới mà không cần chỉnh sửa tệp M lotka.m.

Để làm việc với các biến toàn cục bạn cần:

  • khai báo biến là toàn cục trong mọi hàm M cần biến đó. Để một biến không gian làm việc có tính toàn cục, bạn phải khai báo nó là toàn cục từ dòng lệnh;
  • trong mỗi hàm, hãy sử dụng lệnh chung trước khi biến xuất hiện lần đầu tiên; Nên chỉ định lệnh chung ở đầu tệp M.

Tên biến toàn cục thường dài hơn và mang tính mô tả nhiều hơn tên biến cục bộ và thường sử dụng chữ in hoa. Đây là tùy chọn nhưng được khuyến nghị để đảm bảo mã MATLAB dễ đọc và giảm nguy cơ vô tình ghi đè một biến toàn cục.

Các biến đặc biệt Một số hàm M trả về các biến đặc biệt có vai trò quan trọng khi làm việc trong môi trường hệ thống MATLAB:

đáp Kết quả mới nhất; nếu biến đầu ra không được chỉ định thì MATLAB sẽ sử dụng biến ans.
eps Độ chính xác của dấu phẩy động; được xác định bởi độ dài của lớp phủ và đối với PC eps = 2.220446049250313e-016
realmax Số dấu phẩy động tối đa có thể được biểu thị bằng máy tính; cho PC realmax = 1.797693134862316e+308.
realmin Số dấu phẩy động nhỏ nhất có thể được biểu diễn bằng máy tính; đối với PC realmin = 2.225073858507202e-308.
số Pi Biến đặc biệt cho số p: pi=3.141592653589793e+000.
tôi, j Các biến đặc biệt để biểu diễn đơn vị ảo
thông tin Biến đặc biệt để biểu thị ký hiệu vô cực?
NaN Một biến đặc biệt để biểu thị một giá trị không xác định - kết quả của các phép toán thuộc loại: 0/0, inf/inf.
máy tính Một biến đặc biệt để chỉ ra loại máy tính đang được sử dụng; dành cho PC - PCWIN.
thất bại Một biến đặc biệt để chỉ ra số lượng phép toán dấu phẩy động.
phiên bản Một biến đặc biệt để lưu trữ số phiên bản hệ thống MATLAB đã sử dụng.

Các hàm M tương ứng tạo ra các biến đặc biệt này được đặt trong thư mục elmat và được hỗ trợ bởi trợ giúp trực tuyến.

Loại dữ liệu.

MATLAB định nghĩa sáu kiểu dữ liệu cơ bản, mỗi kiểu là một mảng nhiều chiều. Sáu lớp là double, char, thưa thớt, uint8, cell và struct. Phiên bản hai chiều của các mảng này được gọi là ma trận, đó là lý do MATLAB lấy tên là MATRIX LAB.

Sơ đồ thành viên của một đối tượng hệ thống MATLAB cụ thể đối với một trong các lớp có dạng sau (Hình 3.1):

Có vẻ như hầu hết thời gian bạn sẽ chỉ phải xử lý hai trong số các kiểu dữ liệu này: một mảng dữ liệu kép và một mảng ký tự (char) hoặc chỉ một chuỗi. Điều này là do tất cả các phép tính trong MATLAB đều được thực hiện với độ chính xác kép và hầu hết các hàm hoạt động trên các mảng hoặc chuỗi có độ chính xác kép.

Các kiểu dữ liệu khác dành cho các ứng dụng đặc biệt như làm việc với ma trận thưa thớt (thưa thớt), xử lý hình ảnh (uint8), làm việc với các mảng lớn (ô và cấu trúc).

Bạn không thể đặt loại biến thành số hoặc mảng. Những loại này được gọi là ảo và chỉ phục vụ cho các biến nhóm có thuộc tính chung.

Loại uint8 được thiết kế để lưu trữ dữ liệu hiệu quả trong bộ nhớ. Chỉ có thể áp dụng các thao tác lập chỉ mục và thay đổi kích thước cơ bản cho loại dữ liệu này, nhưng không thể thực hiện các thao tác toán học. Để làm được điều này, các mảng như vậy phải được chuyển đổi thành kiểu double.

Tạo các kiểu của riêng bạn và thêm các phương thức cho các kiểu có sẵn. Bảng bên dưới chứa kiểu dữ liệu thứ bảy - UserObject. Ngôn ngữ MATLAB cho phép bạn tạo các kiểu dữ liệu của riêng mình và làm việc với chúng theo cách tương tự như các kiểu có sẵn.

Đối với các kiểu dữ liệu có sẵn, bạn có thể ghi đè một phương thức giống như cách bạn thực hiện đối với một đối tượng. Ví dụ: để thiết lập thao tác sắp xếp cho một mảng loại uint8, bạn cần tạo một phương thức (sort.m hoặc Sort.mex) và đặt nó vào một thư mục đặc biệt @uint8.

Bảng sau mô tả các loại dữ liệu chi tiết hơn.

Lớp học Ví dụ Sự miêu tả
Gấp đôi [ 1 2; 3 4]
5+6i
Mảng sốđộ chính xác kép (đây là loại biến phổ biến nhất trong MATLAB
Char "Xin chào" Mảng ký tự(mỗi ký tự dài 16 bit), thường gọi là chuỗi.
thưa thớt Speye(5) Ma trận thưa thớtđộ chính xác kép (chỉ hai chiều). Cấu trúc thưa thớt được sử dụng để lưu trữ ma trận với một số lượng nhỏ các phần tử khác 0, cho phép chỉ sử dụng một phần nhỏ bộ nhớ cần thiết để lưu trữ toàn bộ ma trận. Ma trận thưa thớt yêu cầu sử dụng các phương pháp đặc biệt để giải quyết vấn đề.
Tế bào (17 con mắt "chào" (2)) Mảng ô. Các phần tử của mảng này chứa các mảng khác. Mảng ô cho phép bạn kết hợp dữ liệu liên quan, có thể có kích thước khác nhau, thành một cấu trúc duy nhất.
Cấu trúc A.ngày = 12; A.color = "Đỏ"; A.mat = ma thuật(3); Mảng hồ sơ. Nó bao gồm tên trường. Bản thân các trường có thể chứa mảng. Giống như mảng ô, mảng bản ghi kết hợp dữ liệu và thông tin liên quan về nó.
Uint8 Uint8(ma thuật(3)) Mảng số nguyên không dấu 8 bit. Nó cho phép bạn lưu trữ các số nguyên trong phạm vi từ 0 đến 255 trong 1/8 bộ nhớ cần thiết cho một mảng có độ chính xác kép. Không có phép toán nào được xác định cho các mảng này.
Đối tượng người dùng nội tuyến("sin(x)") Kiểu dữ liệu do người dùng xác định.

Mô tả sơ đồ. Các đường kết nối trong sơ đồ (Hình 3.1) xác định xem một kiểu dữ liệu cụ thể có thuộc về một hoặc nhiều lớp hay không.

Ví dụ
Một ma trận kiểu thưa cũng có kiểu double và kiểu số. Toán tử
isa(S",thưa thớt")
isa(S",gấp đôi")
isa(S",số")

trả về giá trị 1 (true), tức là S là ma trận số thưa thớt có độ chính xác kép.

Lưu ý rằng loại mảng nằm ở đầu sơ đồ. Điều này có nghĩa là tất cả dữ liệu trong hệ thống MATLAB đều là mảng.

Mỗi loại dữ liệu có thể được liên kết với các hàm và toán tử xử lý riêng của nó, hay nói cách khác là các phương thức. Các kiểu dữ liệu con, nằm bên dưới kiểu dữ liệu gốc trong sơ đồ, cũng được hỗ trợ bởi các phương thức của dữ liệu gốc. Do đó, một mảng kiểu double được hỗ trợ bởi các phương thức được sử dụng cho kiểu số.

Bảng này hiển thị một số phương pháp sau:

Lớp học Phương pháp
Mảng Tính toán kích thước, độ dài, ndims, liên kết mảng (), chuyển vị, chỉ số phụ, định hình lại và hoán vị các kích thước của mảng nhiều chiều.
Ô mảng ô Lập chỉ mục bằng dấu ngoặc nhọn (e1,…,en) và phân tách các thành phần danh sách bằng dấu phẩy.
Chuỗi ký tự Các hàm chuỗi (strcmp, low hơn), tự động chuyển đổi sang loại kép để áp dụng các phương thức lớp kép.
Gấp đôi Các phép toán số học và logic, hàm toán học, hàm của ma trận.
số Tìm kiếm (find), xử lý số phức (thực, ảo), hình thành vectơ, chọn hàng, cột, khối con mảng, khai triển vô hướng.
thưa thớt Các phép toán trên ma trận thưa.
Mảng bản ghi cấu trúc Truy cập vào nội dung của field.field (dấu phân cách phần tử danh sách là dấu phẩy).
Uint8 Hoạt động lưu trữ (thường được sử dụng nhất với Hộp công cụ xử lý ảnh PPP)
Đối tượng người dùng Đã xác định người dùng

Mảng trống. Các phiên bản đầu tiên của MATLAB cho phép một dạng mảng trống có kích thước 0x0, ký hiệu là . MATLAB 5 hỗ trợ các mảng có một, nhưng không phải tất cả, kích thước bằng 0, nghĩa là các mảng có kích thước 1x0, 10x0x20 hoặc được xác định là trống.

Dấu ngoặc vuông tiếp tục biểu thị mảng 0x0. Các mảng trống có kích thước khác có thể được tạo bằng cách sử dụng các hàm số 0, số 1, rand hoặc mắt. Ví dụ: để tạo một mảng trống có kích thước 0x5, bạn có thể sử dụng toán tử gán
E = số không (0,5).

Mục đích chính của mảng trống là để bất kỳ thao tác nào được xác định trên một mảng (ma trận) có kích thước m?n sẽ xác định kết quả chính xác cho trường hợp khi m hoặc n bằng 0. Kích thước của mảng kết quả phải khớp với giá trị của hàm được đánh giá bằng 0.

Ví dụ, người vận hành
C=
yêu cầu mảng A và B có cùng số hàng. Do đó, nếu mảng A có kích thước m x ​​n và B có kích thước m x ​​p thì C là mảng có kích thước m x ​​(n+p). Kết quả sẽ đúng nếu bất kỳ tham số m, n hoặc p nào bằng 0.

Nhiều phép toán trong MATLAB tạo ra một vectơ hàng hoặc vectơ cột. Trong trường hợp này, kết quả có thể là một vectơ hàng trống
r = số không(1, 0),
hoặc một vectơ cột trống
C = số không(0, 1).

MATLAB 5 hỗ trợ các quy tắc hệ thống MATLAB 4 cho câu lệnh if và while. Ví dụ: một câu lệnh có điều kiện như
nếu A, S1, ngược lại, S0, kết thúc
thực thi câu lệnh S0 khi A là một mảng trống.

Một số hàm MATLAB như sum, prod, min và max làm giảm tính chiều của kết quả: nếu đối số là một mảng thì kết quả là một vectơ; nếu đối số là vectơ thì kết quả là vô hướng.

Đối với các hàm này, khi mảng đầu vào trống, sẽ thu được kết quả sau:
tổng() = 0 ;
sản phẩm() = 1 ;
max() = ;
phút() = .

1. CÁC YẾU TỐ CỦA NGÔN NGỮ M MATLAB

Các phần tử trong ngôn ngữ M được sử dụng để điều khiển quá trình tính toán trong MATLAB là hằng số, biến, hàm, lệnh và cấu trúc điều khiển. Các phần tử này, có thể trong các kết nối khác nhau bằng cách sử dụng các đầu nối đặc biệt, được sử dụng cả trên dòng lệnh và trong các chương trình.

1.1. hằng số BMATLAB

Một hằng số trong MATLAB biểu thị thông tin không thay đổi trong suốt phiên giao tiếp. Các hằng số có thể do người dùng xác định (do người dùng xác định) hoặc do hệ thống xác định (do hệ thống xác định). Các hằng số người dùng được người dùng chỉ định và được sử dụng một lần - tại thời điểm chúng được đề cập trong dòng lệnh thực thi. Ví dụ: 16, -38.654, -1.e-23, 1+2i, "Đây là hằng số ký hiệu".

Các hằng số hệ thống được xác định vĩnh viễn trong hệ thống và có các ký hiệu đặc biệt mà chúng được gọi đến, ví dụ: pi (=3,1416), eps (=2,2204e-016), realmin (=2,2251e-308), realmax (=1,7977 e+308 ), i, j (jíi).

1.2. BIẾN TRONGMATLAB

Một biến trong MATLAB được xác định bởi mã định danh, loại, vị trí trong bộ nhớ máy tính. Để xác định một biến trong MATLAB, bạn cần chọn mã định danh (tên) của biến (bắt đầu bằng chữ cái Latinh, sau đó là chữ cái Latinh, số, ký tự đặc biệt) và sử dụng biến này trong câu lệnh dòng lệnh để đặt giá trị của biến đó. biến (gán đơn giản, tham chiếu đến một biến nhất định, v.v.).

  1. Các biến số: số thường (thực) hoặc số phức, vectơ, ma trận và mảng nhiều chiều. 8 byte được phân bổ cho số thực, 16 byte cho số nguyên và số thực không khác nhau.

A) số thực

A=2 A=2,0 B=-143,298 C=1,23e-2

B) số phức

Q=1+3i r=-4.6-7.45i S=2+5j

real(Q) – chất.phần của số phức,

image(Q) – phần ảo của số phức,

abs(Q) – giá trị tuyệt đối của số phức,

conj(Q) – số phức liên hợp,

góc(Q) – giá trị pha (góc) của số phức tính bằng radian.

C) vectơ

vectơ hàng

a=1:3:10 b= c=linspace(13,53,5)

vectơ cột

aa=a’ bb= cc= linspace(13,53,5)’ dd=(15:45)’

Đối với vectơ có các thành phần phức: nếu y là vectơ phức thì y.’ là vectơ cột có cùng các thành phần và y’ là vectơ cột có các thành phần là số phức liên hợp.

D) ma trận: M(i,j) – phần tử của hàng thứ i và cột thứ j; M(k) là phần tử thứ k của ma trận được mở rộng thành một cột.

A= ---à 1 2

A(2,2) (=4) A(3) (=2) -à A = (1 3 2 4)

A(3,4)=10 ---à 1 2 0 0

kích thước(A) (=) =kích thước(A) (m=3, n=4)

A=A(:) -à mở rộng thành một cột – ma trận trở thành một vectơ!

reshape(A,3,4) -à biến vectơ trở lại thành ma trận 3x4

A(,:)= -à xóa hàng đầu tiên và cuối cùng khỏi ma trận

A(:,)= à xóa tất cả các cột ngoại trừ cột cuối cùng

Một số ma trận đặc biệt:

eye(m,n) - những cái trên đường chéo chính, phần còn lại là số 0 (eye(m) - ma trận nhận dạng vuông mxm)

những cái(m,n) – ma trận của những cái

số không(m,n) – ma trận số không

rand(m,n) – ma trận mxn chứa đầy các số ngẫu nhiên từ 0 đến 1

C=round(1+100*rand(10,10)) – ma trận 10x10 chứa các số nguyên ngẫu nhiên từ 1 đến 100.

Các phép toán đơn giản với ma trận:

diag(A) – vectơ của các phần tử nằm trên đường chéo chính của ma trận A,

diag(diag(A)) là ma trận đường chéo vuông với các phần tử đường chéo như A và các số 0.

triu(A) tril(A) – một ma trận có phần trên hoặc phần dưới của A, được đệm bằng các số 0.

  1. Biến ký tự

cvb=’Moscow là thủ đô của Nga’

Dòng ký tự được giới hạn ở các dấu nháy đơn đơn (trên phím có chữ cái tiếng Nga “e”) và được đánh dấu bằng màu.

Mỗi ký tự chiếm 2 byte và được coi là một phần tử riêng biệt của vectơ hàng ký tự. Vì vậy, nếu chúng ta chỉ định phép toán chuyển vị cvb’ , chúng ta sẽ nhận được một vectơ cột có 31 phần tử.

Bạn có thể chuyển đổi các biến tượng trưng thành số và ngược lại.

Chúng thường được sử dụng để hiển thị kết quả, đồ thị, nhãn và thông báo.

Kiểm soát các biến.

Phương pháp 1 – trong cửa sổ Workspace

Phương pháp 2 - lệnh who - đưa ra danh sách các biến được xác định tại một thời điểm nhất định.

Phương pháp 3 - lệnh whos - cung cấp thông tin đầy đủ hơn về các biến (Tên Kích thước Lớp byte)

Làm sạch bộ nhớ.

rõ ràng - xóa hoàn toàn tất cả các biến (hoặc xóa biến)

xóa var1,var2,… - xóa các biến riêng lẻ var1,var2,….

1.3. CHỨC NĂNG TRONGMATLAB

Hàm trong MATLAB là các chương trình thực hiện một số thao tác thông thường trên dữ liệu. Để thực hiện các thao tác này và thu được kết quả cần thiết, chỉ cần chỉ định tên hàm và có thể chỉ định một số dữ liệu ban đầu là đủ. Như vậy, khái niệm hàm ở đây (cũng như bất kỳ ngôn ngữ nào khác) gắn liền với 3 khái niệm: tên hàm, tập dữ liệu đầu vào (varargin) và tập dữ liệu đầu ra (varargout). Ngoài ra, các khái niệm về số lượng tham số đầu vào (nargin) và số lượng tham số đầu ra (nargout) cũng được xác định.

Các hàm trong MATLAB được chia thành do người dùng định nghĩa (do người dùng xác định, phát triển) và hệ thống (được xác định, xác định trong hệ thống, không yêu cầu lập trình). Chúng tôi sẽ đề cập đến cách tạo các hàm tùy chỉnh khi đề cập đến các chủ đề lập trình. Sau khi tạo và gỡ lỗi, chức năng của người dùng không khác gì chức năng của hệ thống.

Các chức năng hệ thống được chia thành các chức năng tích hợp và thư viện. Các hàm thư viện được lưu trữ trong hệ thống dưới dạng chương trình ngôn ngữ M, được viết dưới dạng file có cùng tên với tên hàm và có phần mở rộng là *.m. Người dùng có thể xem nội dung của các chương trình này (thư mục \toolbox\matlab\ trong vị trí cài đặt MATLAB). Ví dụ: bạn có thể mở để xem một tệp m có hàm tính giá trị logarit thập phân (\toolbox\matlab\elfun\log10.m). Khi được thực thi, các câu lệnh của các chương trình này trước tiên được dịch thành các hướng dẫn từ hệ thống điều hành của máy tính (được thông dịch) và sau đó được thực thi. Các hàm tích hợp được lưu trữ trong hệ thống ở dạng biên dịch, không cần dịch và do đó, được thực thi nhanh hơn các hàm thư viện. Trong thư mục hệ thống dành cho các hàm như vậy, các tệp được lưu trữ có tên tương tự như tệp thư viện nhưng chỉ chứa các nhận xét về việc sử dụng các hàm. Ví dụ: bạn có thể mở một tệp liên quan đến hàm tính số mũ (\toolbox\matlab\elfun\exp.m).

1.4. BIỂU THỨC TRONGMATLAB

Biểu thức là một cấu trúc ngôn ngữ bao gồm các thành phần ngôn ngữ (hằng, biến, hàm) được kết nối với nhau bằng các ký tự kết nối chỉ định các thao tác được thực hiện khi tính giá trị của biểu thức. Có các biểu thức số (Nbiểu thức), biểu tượng (CExpression) và logic (Lbiểu thức) tùy thuộc vào kết quả thu được sau khi thực hiện các thao tác có trong biểu thức.

Cho đến nay chúng ta đã làm quen với bốn loại dữ liệu khác nhau.
Chương trình MATLAB: số dấu phẩy động, chuỗi, ký tự
biểu thức và chức năng.

Trong một phiên làm việc MATLAB dài, có thể không dễ nhớ tên và kiểu của tất cả các biến mà bạn đã xác định.
Bạn có thể nhập lệnh aiđể xem danh sách chung tên và
các loại hoặc lớp của các biến hiện được xác định của bạn. Nhưng trước đó
cách thực hiện việc này, thực hiện các phép gán a = pi, b = "pi", c = ("pi"), sau đó
đi vào ai. Dưới đây là đầu ra của kết quả phiên MATLAB,
được trình bày trong chương này.

Các biến A, X, Y, Z, a và d được gán giá trị số và
được chỉ định là "mảng kép". Điều này có nghĩa chúng là các mảng số có
độ chính xác gấp đôi; trong trường hợp này, mảng a và d có kích thước 1x1, nghĩa là
là vô hướng. Cột Byte hiển thị số lượng máy tính
Mỗi biến chiếm bộ nhớ. Biến ans cũng là số,
vì đầu ra cuối cùng là vectơ 1X2. Biến b là một chuỗi,
được chỉ định là mảng char (Mảng ký tự), vì các biến là c, u, v, w,
x, y mang tính biểu tượng. Cuối cùng, chúng ta cũng thấy hai mảng xử lý
các hàm và hai mảng các đối tượng tích hợp tương ứng với các cặp
chức năng ẩn danh và chức năng tích hợp.
Lệnh whos hiển thị thông tin về tất cả các biến được chỉ định, nhưng lệnh này
lệnh không hiển thị giá trị của các biến. Để xem giá trị của một biến,
Chỉ cần nhập tên của biến và nhấn phím Fnterl.

Các lệnh chương trình MATLAB yêu cầu các lớp cụ thể khi nhập
dữ liệu và điều rất quan trọng là phải biết chính xác loại dữ liệu mà một lệnh nhất định yêu cầu;
văn bản trợ giúp lệnh thường chứa lớp hoặc các lớp
bắt buộc khi vào. Lớp đầu vào không hợp lệ thường dẫn đến
thông báo lỗi hoặc kết quả không mong muốn. Ví dụ: nhập lệnh sin("pi") để xem kết quả của việc thêm một dòng vào
một hàm không chấp nhận chuỗi.
Để xóa tất cả các biến được xác định trong Matlab, hãy nhập clear hoặc clear all.
Bạn cũng có thể nhập, ví dụ, xóa x y để chỉ xóa
biến x và y.

Phúc. 2.2. Máy tính để bàn có cửa sổ Workspace

Thông thường bạn nên xóa các biến trước khi bắt đầu tính toán mới.
Nếu không, các giá trị từ các phép tính trước đó có thể vô tình
bước vào những cái mới. Cửa sổ Workspace cung cấp
một sự thay thế đồ họa cho lệnh whos. Bạn có thể kích hoạt cửa sổ này bằng cách nhấp vào
bằng cách nhấp vào tab Workspace trong cửa sổ Current Directory hoặc bằng cách nhập lệnh không gian làm việc tại dòng lệnh. Trong bộ lễ phục. 2.2 hiển thị
Máy tính để bàn chứa Cửa sổ lệnh và Không gian làm việc
(không gian làm việc) chứa cùng thông tin được hiển thị
cao hơn.

Vì vậy, từ những điều trên, chúng tôi có thể kết luận rằng bạn cần xem xét rất nhiều thông tin bổ sung và lựa chọn thay thế!