Giáo trình Matlab căn bản - Chương 1: Matlab cơ bản

Matlab là một phần mềm cao cấp dùng để giải các bài

toán. Để khởi động MATLAB ta bấm đúp vào icon của nó. Các file MATLAB

có dạng *.m và chỉ chạy trong môi trường MATLAB. MATLAB xử lí số liệu

như là ma trận. Khi ta đánh lệnh vào cửa sổ lệnh, nó sẽ được thi hành ngay và

kết quả hiện lên màn hình. Nếu ta không muốn cho kết quả hiện lên màn

hình thì sau lệnh ta đặt thêm dấu “;”. Nếu lệnh quá dài, không vừa một dòng

dòng có thể đánh lệnh trên nhiều dòng và cuối mỗi dòng đặt thêm dấu . rồi

xuống dòng. Khi soạn thảo lệnh ta có thể dùng các phím tắt :

 ↑ Ctrl‐P gọi lại lệnh trước đó

 ↓ Ctrl‐N gọi lệnh sau

← Ctrl‐B lùi lại một kí tự

→ Ctrl‐F tiến lên một kí tự

pdf57 trang | Chuyên mục: MATLAB | Chia sẻ: dkS00TYs | Lượt xem: 2626 | Lượt tải: 1download
Tóm tắt nội dung Giáo trình Matlab căn bản - Chương 1: Matlab cơ bản, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
đó 3 dòng 
Kelvine, Celcius và Rankine. Giao diện như sau: 
48
 File được lưu với tên ct1_56.fig. Tiếp theo viết lệnh cho ct1_56.m. Ta có 
file này như sau: 
function varargout = ct1_56(varargin) 
if nargin = =  
  fig = openfig(mfilename,ʹreuseʹ); 
  set(fig,ʹColorʹ,get(0,ʹdefaultUicontrolBackgroundColorʹ)); 
  handles = guihandles(fig); 
  guidata(fig, handles); 
  if nargout > 0 
    varargout{1} = fig; 
  end 
elseif ischar(varargin{1}) 
  try 
    [varargout{1:nargout}] = feval(varargin{:});  
  catch 
    disp(lasterr); 
  end 
end 
function varargout = slider1_Callback(h, eventdata, handles, varargin) 
f = get(handles.slider1,ʹValueʹ); 
f = f*180 + 32; 
a = num2str(f); 
set(handles.edit2,ʹStringʹ,a); 
r = f + 495.7; 
49
c = (f ‐ 32)*5/9; 
k = c + 273.15; 
chon = get(handles.listbox1,ʹValueʹ); 
if chon = = 1 
 t = k; 
elseif chon = = 2 
    t = c; 
elseif chon = = 3 
    t = r; 
end 
t = num2str(t); 
set(handles.edit3,ʹStringʹ,t); 
Ta tiếp tục xét phương án dùng Radiobutton. Giao diện có dạng: 
 Ta  dùng  ba  Radiobutton  thay  cho  Listbox.  Radiobutton  thứ  nhất  có 
thuộc  tính  FontSize:  12,  FơntWeight:  bold  và  String: Rankine. Radiobutton 
thứ  2  có  thuộc  tính  FontSize:  12,  FơntWeight:  bold  và  String:  Celcius. 
Radibutton  thứ  3  có  thuộc  tính  FontSize:  12,  FơntWeight:  bold  và  String: 
Kelvine. Các phần  tử khác và  thuộc  tính  của  chúng vẫn như  cũ. Layout  có 
thuộc tính Name: ct1_57. Lưu GUI với tên ct1_57.fig. 
  Tiếp theo ta viết các mã lệnh trong ct1_57.m: 
function varargout = ct1_57(varargin) 
if nargin = = 0 
  fig = openfig(mfilename,ʹreuseʹ); 
  set(fig,ʹColorʹ,get(0,ʹdefaultUicontrolBackgroundColorʹ)); 
  handles = guihandles(fig); 
50
  guidata(fig, handles); 
  if nargout > 0 
    varargout{1} = fig; 
  end 
elseif ischar(varargin{1}) 
  try 
      [varargout{1:nargout}] = feval(varargin{:});  catch 
      disp(lasterr); 
  end 
end 
function mutual_exclude(off) 
set(off,ʹValueʹ,0); 
function varargout = slider1_Callback(h, eventdata, handles, varargin) 
global chon 
f = get(handles.slider1,ʹValueʹ); 
f = f*180 + 32; 
a = num2str(f); 
set(handles.edit2,ʹStringʹ,a); 
r = f + 495.7; 
c = (f ‐ 32)*5/9; 
k = c + 273.15; 
if chon = = 1 
    t = r; 
elseif chon = = 2 
    t = c; 
elseif chon == 3 
    t = k; 
end 
t = num2str(t); 
set(handles.edit3,ʹStringʹ,t); 
function varargout = radiobutton1_Callback(h, eventdata, handles, varargin) 
global chon; 
off = [handles.radiobutton2, handles.radiobutton3]; 
mutual_exclude(off); 
chon = 1; 
function varargout = radiobutton2_Callback(h, eventdata, handles, varargin) 
global chon; 
off = [handles.radiobutton1, handles.radiobutton3]; 
51
mutual_exclude(off); 
chon = 2; 
function varargout = radiobutton3_Callback(h, eventdata, handles, varargin) 
global chon; 
off = [handles.radiobutton1, handles.radiobutton2]; 
mutual_exclude(off); 
chon = 3; 
on lnh: 
function mutual_exclude(off) 
set(off,'Value',0); 
lm cho 3 nút lnh tr thnh mt nhóm. Các câu lnh: 
off = [handles.radiobutton1, handles.radiobutton2]; 
mutual_exclude(off); 
lm cho khi chn mt nút Radiobutton ny thì không chn c nút khác na. Cui 
cùng ta xét phng án dùng Checkbox. Giao din nh sau: 
Cng nh phng án dùng Radiobutton, ta dùng ba Checkbox. 
 Checkbox th nht có thuc tính FontSize: 12, FntWeight: bold v String: 
Rankine. 
 Checkbox th hai có thuc tính FontSize: 12, FntWeight: bold v String: Celcius. 
 Checkbox th ba có thuc tính FontSize: 12, FntWeight: bold v String: Kelvine. 
 Các phn t khác không co gì thay i. Ta lu file vi tên ct1_58.fig. Tip theo 
ta vit mã lnh cho ct1_58.m: 
function varargout = ct1_58(varargin) 
if nargin = = 0 
 fig = openfig(mfilename,'reuse'); 
 set(fig,'Color',get(0,'defaultUicontrolBackgroundColor')); 
 handles = guihandles(fig); 
 guidata(fig, handles); 
52
 if nargout > 0 
 varargout{1} = fig; 
 end 
elseif ischar(varargin{1}) 
 try 
 [varargout{1:nargout}] = feval(varargin{:}); catch 
 disp(lasterr); 
 end 
end 
function mutual_exclude(off) 
set(off,'Value',0); 
function varargout = slider1_Callback(h, eventdata, handles, varargin) 
global chon 
f = get(handles.slider1,'Value'); 
f = f*180 + 32; 
a = num2str(f); 
set(handles.edit2,'String',a); 
r = f + 495.7; 
c = (f - 32)*5/9; 
k = c + 273.15; 
if chon = = 1 
 t = r; 
elseif chon = = 2 
 t = c; 
elseif chon = = 3 
 t = k; 
end 
t = num2str(t); 
set(handles.edit3,'String',t); 
function varargout = checkbox1_Callback(h, eventdata, handles, varargin) 
global chon; 
off = [handles.checkbox2, handles.checkbox3]; 
mutual_exclude(off); 
chon = 1; 
function varargout = checkbox2_Callback(h, eventdata, handles, varargin) 
global chon; 
off = [handles.checkbox1, handles.checkbox3]; 
mutual_exclude(off); 
chon = 2; 
function varargout = checkbox3_Callback(h, eventdata, handles, varargin) 
global chon; 
off = [handles.checkbox2, handles.checkbox1]; 
mutual_exclude(off); 
chon = 3; 
) GUI có dùng  ho: Ta xây dng mt GUI dùng  v  th hm 
y=tsin(t). Giao din nh sau: 
53
 Ta dùng mt Axes, bn Pushbutton  to nên giao din ny. Khi nhn Plot,  
th ca hm y = tsin(t) c v. Khi nhn Grid on,  th c chia li. Khi 
nhn Grod off, li b xoá. Nhn Close  óng  th. 
 Layout có thuc tính Name: ct1_59, HandleVisibility: callback. 
Các  Pushbutton  đều  có  thuộc  tính  FontSize:  12,  FơntWeight:  bold  và  các 
String là các tên lệnh. GUI được lưu với tên file là ct1_59.fig. Tiếp theo ta soạn 
thảo lệnh cho ct1_59.m: 
function varargout = ct1_59(varargin) 
if nargin = = 0   
  fig = openfig(mfilename,ʹreuseʹ); 
  handles = guihandles(fig); 
  guidata(fig, handles); 
  if nargout > 0 
    varargout{1} = fig; 
  end 
elseif ischar(varargin{1}) 
  try 
    [varargout{1:nargout}] = feval(varargin{:}); % FEVAL switchyard 
  catch 
    disp(lasterr); 
  end 
end 
function varargout = pushbutton1_Callback(h, eventdata, handles, varargin) 
grid on 
function varargout = pushbutton2_Callback(h, eventdata, handles, varargin) 
grid off 
54
function varargout = pushbutton3_Callback(h, eventdata, handles, varargin) 
close  
function varargout = pushbutton4_Callback(h, eventdata, handles, varargin) 
t = 0:0.01:20; 
y = t.*sin(t); 
plot(t,y); 
Tip theo ta xét mt GUI có giao din nh sau: 
 Nhim v ca GUI l v  th ca hm peaks theo các dng khác nhau( 
mesh, surf v contour) vi các Colormap khác nhau(hsv, hot, gray, prism, cool, winter v 
summer). Vic v các dng  th thc hin nh các Pushbutton. Vic chn 
Colormap thc hin nh Listbox. 
 Layout có thuc tính Name: ct1_60 v thuc tính HandleVisbility: on. Các 
Pushbutton u có thuc tính FontSize: 12 v FntWeight: bold. Ta lu GUI vi tên 
ct1_60.fig. Mã trong ct1_60.m gm: 
function varargout = ct1_60(varargin) 
if nargin = = 0 
 fig = openfig(mfilename,'reuse'); 
 set(fig,'Color',get(0,'defaultUicontrolBackgroundColor')); 
 handles = guihandles(fig); 
 guidata(fig, handles); 
 if nargout > 0 
 varargout{1} = fig; 
 end 
elseif ischar(varargin{1}) 
 try 
 [varargout{1:nargout}] = feval(varargin{:}); 
 catch 
55
 disp(lasterr); 
 end 
end 
function varargout = pushbutton1_Callback(h, eventdata, handles, varargin) 
z = peaks(40); 
chon = get(handles.listbox1,'Value'); 
if chon = =1 
 colormap(hsv(256)); 
elseif chon = =2 
 colormap(hot(256)); 
elseif chon = =3 
 colormap(gray(256)); 
elseif chon = =4 
 colormap(prism(256)); 
elseif chon = =5 
 colormap(cool(256)); 
elseif chon = =6 
 colormap(winter(256)); 
elseif chon = =7 
 colormap(summer(256)); 
end 
mesh(z); 
function varargout = pushbutton2_Callback(h, eventdata, handles, varargin) 
z = peaks(40); 
chon = get(handles.listbox1,'Value'); 
if chon = =1 
 colormap(hsv(256)); 
elseif chon = =2 
 colormap(hot(256)); 
elseif chon = =3 
 colormap(gray(256)); 
elseif chon = =4 
 colormap(prism(256)); 
elseif chon = =5 
 colormap(cool(256)); 
elseif chon = =6 
 colormap(winter(256)); 
elseif chon = =7 
 colormap(summer(256)); 
end 
surf(z); 
function varargout = pushbutton3_Callback(h, eventdata, handles, varargin) 
z = peaks(40); 
chon = get(handles.listbox1,'Value'); 
if chon = =1 
 colormap(hsv(256)); 
56
elseif chon = =2 
 colormap(hot(256)); 
elseif chon = =3 
 colormap(gray(256)); 
elseif chon = = 4 
 colormap(prism(256)); 
elseif chon = = 5 
 colormap(cool(256)); 
elseif chon = = 6 
 colormap(winter(256)); 
elseif chon = = 7 
 colormap(summer(256)); 
end 
contour(z); 
) GUI có dùng đồ hoạ: Ta xây dựng một GUI dùng menu. Giao diện 
của GUI như sau: 
Menu Draw gồm các menu con Mesh, Contour và Close. GUI được lưu 
trong file ct1_61.fig và chương trình được lưu trong file ct1_61.m: 
function varargout = ct1_61(varargin) 
gui_Singleton = 1; 
gui_State = struct(ʹgui_Nameʹ,       mfilename, ... 
                   ʹgui_Singletonʹ,  gui_Singleton, ... 
                   ʹgui_OpeningFcnʹ, @ct1_61_OpeningFcn, ... 
                   ʹgui_OutputFcnʹ,  @ct1_61_OutputFcn, ... 
                   ʹgui_LayoutFcnʹ,  [] , ... 
57
                   ʹgui_Callbackʹ,   []); 
if nargin && ischar(varargin{1}) 
    gui_State.gui_Callback = str2func(varargin{1}); 
end 
if nargout 
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); 
else 
    gui_mainfcn(gui_State, varargin{:}); 
end 
handles.output = hObject; 
function varargout = ct1_61_OutputFcn(hObject, eventdata, handles)  
varargout{1} = handles.output; 
function mnumesh_Callback(hObject, eventdata, handles) 
z = peaks(40); 
mesh(z); 
function Untitled_3_Callback(hObject, eventdata, handles) 
z = peaks(40); 
contour(z); 
function mnuclose_Callback(hObject, eventdata, handles) 
clf 
close 
function mnudraw_Callback(hObject, eventdata, handles) 

File đính kèm:

  • pdfGiáo trình Matlab căn bản - Chương 1_Matlab cơ bản.pdf