9/16/2015
4
Soạn thảo Script file trong Matlab
13
• Biến toàn cục (global variable) và biến cục bộ hay biến địa phương
(local variable
). Biến toàn cục được khai báo theo cú pháp
global var_1 var_2
• Các biến toàn cục được xóa khỏi môi trường tính toán bằng lệnh clear
[tên biến]. Biến cục bộ chỉ được sử dụng trong một hàm, biến này không
được liệt kê trong cửa sổ workspace, và do đó không thể tác động đến
được trong môi trường làm việc.
• Biến persistent trong một hàm có thể được thống nhất với cách khai
báo
persistent var_1 var_2
• Trái với các đại lượng đã được khai báo bằng global, các đại lượng với
khai báo persistent
chỉ được biết đến trong hàm mà nó được khai báo.
Do đó các hàm khác không thể tác động được đến biến này. Các biến
persistent
chỉ được xóa khi hàm chứa nó thoát ra khỏi bộ nhớ (clear
function_name) hoặc khi hàm được thay đổi sau đó được ghi lại.
Các vòng lặp và rẽ nhánh
14
Lệnh for
for
var_= bien_chay
các
lệnh
end
Lệnh while
while
dieukien,
các lệnh
end
Lệnh if (nếu .. thì ..)
if
dieukien
...
<elseif
> ……. <else> …….
end
Lệnh switch (chuyển)
switch
..
case
..
<otherwise ..>
end
Lệnh ngắt vòng lặp trong for
và while
break
;
Các vòng lặp và rẽ nhánh
15
function
tong =
tongvector(v
)
% ham tinh tong cac phan tu cua mot vector
n=length(v); % tra lai so phan tu, chieu dai cua vector
s = 0; % khoi gan cho tong
for i = 1:n % hoac for i = 1 : 1 : n
s = s + v(i);
end;
tong = s;
% save with file name
tongvector.m
Ví dụ về lệch for. Viết một hàm sử dụng vòng lặp for để tính tổng các
phần tử của một véctơ v. Trên thanh công cụ, ta lựa chọn New –> m-file
để mở một cửa sổ soạn thảo, trong cửa sổ này ta soạn nội dung sau
Sử dụng hàm
>> x=[1:2:50];
>> s=tongvector(x)
s = 625
Các vòng lặp và rẽ nhánh
16
% su dung vong lap while
function tongS
n=100;
S=0; i=1;
while i<=n
S = S+1/i;
i = i+1;
end
tong=S;
disp('Voi n = 100, tong la :')
disp(tong)
Ví dụ về lệch while. Viết hàm tính tổng S = 1+1/2+1/3+ ... +1/100
>> >> tong_S
Voi n = 100, tong la :
5.1874
% su dung vong lap for
function tong_Sn
n=100;
S=0;
for i=1:n
S=S+1/i;
end
tong=S;
disp('Voi n = 100, tong la :')
disp(tong)
>> >> tong_S
Voi n = 100, tong la :
5.1874