Lập trình giao diện GUI trong Matlab (Phần 1)

April 4, 2008

Mình viết bài này để tổng hợp lại các hướng dẫn về thiết kế giao diện GUI trong Matlab để các bạn dễ dàng thực hiện.

Phần mềm: Matlab R2007a

Bài đầu tiên mình sẽ giới thiệu các bạn giao diện GUI.

1. Mở phần mềm Matlab, gõ lệnh sau vào cửa sổ Command

>> guide

Trong cửa sổ GUIDE Quick Start có nhiều lựa chọn theo một trong các khuân mẫu sau:

Create New GUI: Tạo một hộp thoại GUI mới theo một trong các loại sau

  • Blank GUI (Default): Hộp thoại GUI trống không có một điều khiển uicontrol nào cả.
  • GUI with Uicontrols: Hộp thoại GUI với một vài uicontrol như button, ... Chương trình có thể chạy ngay.
  • GUI with Axes and Menu: Hộp thoại GUI với một uicontrol axes và button, các menu để hiển thị đồ thị.
  • Modal Question Dialog: Hộp thoại đặt câu hỏi Yes, No.

Open Existing GUI: mở một project có sẵn.

Trong hướng dẫn này, các bạn tạo một project mới nên sẽ chọn Blank GUI

2. Cửa sổ GUI hiện ra

Giao diện rất giống với các chương trình lập trình giao diện như Visual Basic, Visual C++, ... Các bạn di chuột qua các biểu tượng ở bên trái sẽ thấy tên của các điều khiển. Xin nói qua một vài điều khiển hay dùng:

  • Push Button: giống như nút Command Button trong VB. Là các nút bấm như nút OK, Cancel mà ta vẫn bấm.
  • Slider : Thanh trượt có một con trượt chạy trên đó.
  • Radio Button : Nút nhỏ hình tròn để chọn lựa
  • Check Box
  • Edit Text
  • Static Text
  • Pop-up Menu
  • List Box
  • Axes
  • Panel
  • Button Group
  • ActiveX Control
  • Toggle Button

Các bạn hãy thử gắp thả vài điều khiển vào trong giao diện bên phải xem hình dạng thế nào ?? Hình dạng ra sao nhỉ ??

Còn menu thì quan trọng nhất là menu Tools có:

  • Run (Ctr + T) : nhấn vào để chạy chương trình mà ta đã viết. Có lỗi là hiện ra ngày Big Grin
  • Align Object: dùng để làm cho các điều khiển sắp xếp gọn đẹp theo ý mình như cùng căn lề bên trái, ...
  • Grid and Rulers : dùng để cấu hình về lưới trong giao diện vì nó sẽ coi giao diện như một ma trận các ô vuông nhỏ, ta sẽ thay đổi giá trị này để cho các điều khiển có thể thả ở đâu tùy ý cho đẹp.
  • Menu Editor : trình này để tạo menu cho điều khiển
  • Tab Order Editor : sắp xếp Tab order là thứ tự khi ta nhấn phím Tab
  • Gui Options : lựa chọn cho giao diện GUI.

Các bạn nên vào menu Help để xem hướng dẫn thêm trong Help.

Các bạn save dưới tên: TUT01, khi đó đồng thời xuất hiện cửa sổ Editor và đang mở file TUT01.m của bạn. Trong thư mục bạn save sẽ có 2 file là:

  • TUT01.fig : file này chứa giao diện của chương trình
  • TUT01.m : file chứa các mã thực thi cho chương trình như các hàm khởi tạo, các hàm callback,... (sẽ nói chi tiết vào bài khác).

3. Kéo thả các điều khiển

Nói hơi nhiều nên các bạn ghét rồi, nên hãy làm một ví dụ đơn giản cho vui còn học tiếp nào.

Hãy kéo vào trong giao diện 2 edit box, 1 static box và 1 Push Button.

Chương trình có chức năng khi nhấn vào nút bấm thì kết quả của phép tính cộng giữa 2 số được gõ vào 2 ô sẽ hiện lên trong Static Text.

4. Thay đổi các thuộc tính của các điều khiển

Click đúp vào Edit Text bên trái để xuất hiện cửa sổ các thuộc tính của điều khiển. Có thể sắp xếp theo chức năng hoặc theo thứ tự A-Z của tên thuộc tính bằng nút hiện ở gõ bên trái.

Các thuộc tính này các bạn hãy thử thay đổi xem nó thế nào nhỉ ??

Thuộc tính quan trọng của Edit Box bao gồm:

  • Tag: đây là thuộc tính giống như Caption trong Visual Basic để đặt tên điều khiển. Dùng tên này có thể thao tác đến các thuộc tính của đối tượng. Mình đặt tên là: editStr1.
  • String : là xâu kí tự hiện lên Edit Box. Các bạn xóa cái này đi.

Tương tự, thay đổi thuộc tính tag của Edit Box thứ 2 thành editStr2. Static Box cũng tương tự thành staticStr3.

Push Button: thuộc tính tag = buttonCalculate, string = calculate

5. Viết lệnh cho chương trình

Chương trình có tác dụng khi nhấn vào nút Push Button sẽ hiện lên kết quả ở Static Box. Vì thế nên sẽ phải viết vào hàm nào mà khi nhấn vào Push Button sẽ gọi. Chính là hàm Callback. Điều khiển nào cũng có hàm callback, như hàm ngắt trong vi điều khiển vậy :D .

Click chuột phải vào nút Calculate chọn Callback. Trong này còn một số hàm nữa sẽ tính sau.

src="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Matlab_TUT/Maltab_tutorial_006.gif" />

Nhìn vào định nghĩa của hàm trong Editor bạn sẽ thấy là: hàm này được thực hiện khi nhấn vào nút buttonCalculate.

Hàm có một số tham số:

  • hObject : handle của điều khiển buttonCalculate
  • eventdata
  • handles : là một cấu trúc chứa tất cả các điều khiển và dữ liệu người dùng. Dùng cái này để truy suất các điều khiển khác.

Qua thuộc tính tag của các điều khiển ta sẽ truy suất đến thuộc tính string của các điều khiển editStr1, editStr2,editStr3 bằng lệnh getset.

get(handles.tag_dieu_khien, 'ten thuoc tinh');

set(handles.tag_dieu_khien, 'ten_thuoc_tinh', gia_tri);

và hàm quan trọng nữa biến từ string sang số là hàm: str2num và num2str để biến trở lại.

Vậy chúng ta sẽ viết hàm như sau:

Nhấn nút Run kiểm tra kết quả xem nào:

Tham khảo

Ngô Hải Bắc, Lập trình GUI trong Matlab, www.dientuvietnam.net, 2005

Ngô Hải Bắc, Giao tiếp RS232 trên PC qua Matlab, www.picvietnam.com, 2006

Các bài viết liên quan:

  1. Các tính chất của các điều khiển trong GUIDE Matlab Chào các bạn. Mình xin gửi các bạn tài liệu Matlab 7 - Creating Graphical User Interfaces, là tài liệu dạng .pdf của tài liệu trong Help của Matlab. Các bạn nào có thể tự đọc hiểu được English thì tài liệu này là quá đầy đủ rồi. Các bài viết của mình dựa một [...]...
  2. Tổng quan về hàm Callback trong lập trình GUI Sau khi các bạn tạo cái giao diện đã xong thì đến phần lập trình rất quan trọng, chính là lập trình các hành vi của các điều khiển để đáp ứng lại các sự kiện như nhấn phím, kéo thanh trượt, khi chọn menu, ... đó chính là các hàm Callback (giống như các [...]...
  3. Tạo hình nền cho giao diện GUI Chào các bạn. Trong bài này mình sẽ hướng dẫn các bạn tạo hình nền hoặc một phần của giao diện GUI. Ý tưởng: dùng một Axes control để load hình ảnh. Như vậy, ngay khi chạy GUI thì ảnh đã hiển thị lên axes rồi nên trông như là hình nền của GUI vậy. [...]...
  4. Tạo file .exe cho giao diện GUI Matlab Chào các bạn. Sau khi các bạn đã biết cách để viết một giao diện GUI, biết cách dịch ra file .exe tự chạy trên một máy khác thì bây giờ mình kết hợp làm sao đây ?? Bài này mình dịch một project GUI tương đối là nhiều thành phần: RS232 Communication đã được [...]...
  5. Tạo file .exe trong Matlab dùng Matlab Compiler Có nhiều bạn khá băn khoăn về việc dịch một ứng dụng trong Matlab ra file .exe để chạy độc lập trên các máy không cài Matlab đúng không ?? Hay là cách để đóng gói sản phẩm của mình thì nên làm thế nào ? Để có thể dịch ra file .exe yêu cầu [...]...
  6. Lập trình giao tiếp RS232 qua Matlab Chào các bạn. Mình xin tổng hợp lại một số bài viết của mình về lập trình giao tiếp RS232 trên PC bằng phần mềm Matlab. I. Đối tượng Serial Object Việc giao tiếp này cũng rất dễ dàng thực hiện, không có gì là quá cao siêu cả. Mình đã giao tiếp thành công [...]...

{ 194 comments… read them below or add one }

botloc April 6, 2008 at 10:15 am

em chẳng biết vào chỗ nào hỏi hết, đành hỏi ở đây vậy, nếu có sai chỗ thì thông cảm.
Chào mọi người, để vẽ giãn đồ mắt của một tín hiệu thì ta dùng hàm gì?
Tín hiệu cần vẽ là:

wo=(2*pi*3*1e+8)/(1550*1e-9);
C=0;
T=1/(10*1e+9);
t=-3*T:T/10:3*T;
y=exp(-(1+j*C)/2*(t./T).^2).*exp(-j*wo.*t);

Và có cách nào để chèn ảnh ( file jpg, bmp..) làm hình nền trong giao diện GUI mình cần tạo ra kô? Xin cảm ơn. ( đối với matlab 6.5 or 7).

Reply

botloc April 7, 2008 at 12:34 am

Thanks you very much……*_*

Reply

admin April 6, 2008 at 11:26 am

Chào bạn.

Theo dữ liệu mà bạn đưa thì W0, C, T là hằng số. Và y được biểu diễn theo biến t bằng hàm mà bạn đã đưa.

Mình không biết giản đồ mắt là gì nhưng có thể giúp bạn.

1) Hiển thị đồ thị

Trước hết bạn thêm control Axes vào trong giao diện GUI.Trong GUI, đầu tiên thì chúng ta cần phải focus vào cái axes có tên là: axes1 chẳng hạn. Sau đó gõ lệnh plot thôi bạn ạ.

axes(axes1);
plot(y,t,’k-’,'LineWidth’,2);

2) Để chèn ảnh làm hình nền trong giao diện GUI của bạn thì đơn giản là bạn cho control Axes có kích thước bằng với giao diện của bạn. Trong hàm CreateFunction của control này (là hàm gọi khi control này được load lên giao diện) bạn gọi lệnh để hiển thị hình ảnh.

imshow(‘địa chỉ của ảnh’);
%Bạn xem thêm về Image Processing Toolbox nhé.

Chúc bạn thành công.

Reply

admin April 12, 2008 at 1:01 pm

Anh đã sửa chức năng comment rồi em ạ. Bây giờ em comment vô tư nhé.

Muốn lấy kết quả thuộc tính của plaintext1 dùng lệnh:
get(handles.plaintext1, ‘String’); %ví dụ với String

Còn cập nhật cho uipanel2 hình như không đúng rồi. hObject chính là handle của đối tượng mà em đang focus đó, nên dùng lệnh tương tự với các điều khiển khác. Em dùng lệnh set(hObject,’ten thuoc tinh’,gia tri);. Lệnh guidata dùng với handles cơ em ạ. Không cần cập nhật cái đó ở đây.

Rảnh anh sẽ viết bài về cấu trúc handles.

Chúc em thành công.

Reply

hung_dtvt April 12, 2008 at 1:01 pm

Vậy trong 1 function mình muốn gọi plaintext1 như comment trên thì dùng lệnh này phải không a.
a = handles.plaintext1;

Reply

hung_dtvt April 12, 2008 at 1:05 pm

Thế đoạn trên e nên sửa sao cho đúng vậy a?

Reply

admin April 12, 2008 at 1:13 pm

Mục đích của em ở đây là gì ?? Em muốn hiển thị lên chỗ nào? uipanel là đối tượng gì?

Em phải nêu rõ mục đích mình muốn làm nhé.

Reply

hung_dtvt April 12, 2008 at 1:18 pm

E vừa mail cái hình của e sang a rồi ạ.Trong ni kô đưa hình vào phải không a.

Reply

admin May 2, 2008 at 12:57 pm

Chào em.

Muốn dừng thì em nhấn vào nút Pause trên cửa sổ GUI là được mà em.

Còn tất cả các lỗi khi lập trình và chạy GUI đều hiển thị trên cửa sổ Command của Matlab.

Chúc em thành công.

Reply

admin May 7, 2008 at 11:59 pm

Chào em.

Gọi cái axes đó có thuộc tính tag là: axes1. Để có thể vẽ đồ thị lên trên axes này thì em phải focus vào axes này và dùng lệnh vẽ plot.

axes(‘axes1′); % focus vào axes
plot(x,y,…); % vẽ đồ thị

Chú ý: chỉ được dùng lệnh plot thì đồ thị mới hiện ra trên axes còn không sẽ hiện lên figure.

Do đó, em phải chuyển các lệnh vẽ đồ thị khác sang dạng y = f(x).

Chúc em thành công.

Reply

admin April 12, 2008 at 1:22 pm

Chào em.

Hic hic, nhìn vào cái hình anh làm sao mà biết được các đối tượng cụ thể có tag là gì.

Thế này nhé. Em upload project của em gồm file .fig và .m lên skydriver nhé.Nếu chưa có tài khoản hotmail thì đăng ký ở trên đầu trang nhé.

Sau đó em paste link lên đây anh xem cho.Mọi người cùng trao đổi nữa.

Chức năng soạn thảo comment anh thay đổi sau .

Reply

hung_dtvt April 12, 2008 at 1:27 pm

Vâng để e làm thử.

Reply

hung_dtvt April 12, 2008 at 1:30 pm

Sao lên đầu trang cứ bị vệt đen che lấp hết.KO thấy j cả a ơi

Reply

admin April 12, 2008 at 2:15 pm

Chào em.

Planintext1 là một đối tượng em ạ. Như vậy câu lệnh trên của em chính là gán a = handle của đối tượng plaintext1.

Em muốn gọi đối tượng plaintext1 để làm gì em ? Anh thấy các hàm callback dùng để cập nhật dữ liệu, tính toán dựa trên các thuộc tính đặc trưng của các đối tượng khác. Em nên dùng lệnh set và get để thao tác.

Chúc em thành công.

Reply

hung_dtvt April 12, 2008 at 12:31 pm

function uipanel2_SelectionChangeFcn(hObject, eventdata, handles)
switch get(hObject,’Tag’)
case ‘ki_tu_plaintext’
p = double(get(handles.plaintext,’String’));
case ‘hexa_plaintext’
p = hex2dec(chia_chuoi(get(handles.plaintext,’String’)));
otherwise
end
set(hObject.plaintext1,p);
guidata(hObject, handles);

1.Cho e hỏi đoạn ct trên đúng chưa?
2.Từ function khác muốn lấy kết quả plaintext1 bằng lệnh handles.plaintext1 phả không a?
Thanks

Reply

hung_dtvt April 14, 2008 at 1:29 pm

Thế hả a.Sao ngày nào e vào cũng bị che đoạn trên hết.Kì lạ ghê.

Reply

hung_dtvt May 2, 2008 at 2:42 pm

Dạ, ý em muốn hỏi anh lệnh gì trong matlab để mình dừng chương trình lại ấy mà anh. Như mình thoát ngang cái chương trình đang chạy ấy. E nghĩ kiểu như break ấy nhưng dừng 1 chương trình lại thì em chưa biết dùng lệnh j cả.

Reply

botloc April 18, 2008 at 5:30 am

cho em hỏi: giả sử giao diện của em gồm một nút nhấn và một textbox hay edit. Khi em nhấn nút thì một ma trận có thể hiển thị lên textbox hay edit được không. Giúp em với, làm mãi mà chẳng được. Làm một số thì được nhưng khi cho hiển thị một ma trận thì kô được. Help me. Thanks.

Reply

admin April 18, 2008 at 7:09 am

Chào em.

Hiển thị cũng đơn giản mà em. Thế này nhé. Em làm theo các bước sau:

1/Thêm một Edit Text ở chế độ Multi-line (Max = 100, min = 0), tag = editStr, String = ” nhé.
Xem thêm ở bài giới thiệu các thuộc tính của các điều khiển nhé.

2/Thêm một Button với tag = buttonDisplay.

3/ Em viết code như sau:

a = [1 1; 2 2]; % a là ma trận ví dụ 2 x 2
b = num2str(a); % chuyển số thành kí tự
set(handles.editStr,’String’,b); % hiển thị lên editbox.

Ví dụ, anh làm thử down tại đây

Chúc em thành công.

Reply

botloc April 18, 2008 at 9:03 am

em đã thử thành công. Xin cảm ơn..
Em đang thử với giao diện gồm một nút nhấn button và 2 edit. Việc đầu tiên em nhập vào một số bất kì. Sau đó nhấn nút, nó phải kiểm tra số dương thì số cần nhập vào edit1 sẽ hiển thị vào edit2, còn không thì báo lỗi hiện lên message ” Xin nhập lại “.
Chương trình em viết, sau khi nhập số âm dương gì nó cũng chạy hết. Anh kiểm tra lại chương trình của em có đúng kô. Xin cảm ơn.
function pushbutton1_Callback(hObject, eventdata, handles)
L=(get(handles.edit1,’string’));
if L < 0
error (‘nhap lai chieu dai’)
end
set(handles.edit2,’string’,L); :roll:

Reply

admin April 18, 2008 at 9:26 am

Chào em.

Chương trình em viết thế là không được vì L là string rồi. Em phải convert nó sang numeric bằng hàm str2num thì mới thử được chứ em.

Em thêm lệnh: L = str2num(L);

Em nên thiết kế thêm để khi người dùng nhập giá trị <0 thì quay lại ô editbox đó, bắt nhập lại thì hay hơn em ạ.

Hiển thị thông báo có thể dùng msgbox (anh quên mất hàm này).

Chúc em thành công.

Reply

botloc April 18, 2008 at 11:03 am

em đã chuyển đổi L từ chuỗi sang số nhưng mà vẫn không chạy..làm răng đây..help me…
function pushbutton1_Callback(hObject, eventdata, handles)
L=(get(handles.edit1,’string’));
L=str2num(L);
if L>0
set(handles.edit2,’string’,L);
else
msgbox(‘nhap lai chieu dai’,'Thong bao loi’,'error’)
end

Reply

admin April 18, 2008 at 11:07 am

Em xem thông báo nếu gặp lỗi ở cửa sổ Command nhé. Xem là lỗi gì. Nếu k dc thì tí anh rảnh anh viết cho.

Reply

botloc April 18, 2008 at 11:14 am

lỗi ở cửa sổ command là:
” Error using ==> str2num
Requires string or character array input.”
em chẳng biết sửa nó như thế nào hết..

Reply

admin April 18, 2008 at 11:49 am

Em có thể dùng lệnh str2num hoặc str2double (tra help để xem thêm).

L = get(handles.editStr1,’String’);
if str2num(L)>0,
set(handles.editStr2,’String’,L);
end

Anh làm dùng 1 trong 2 lệnh đều được. Em download project ở đây nhé.

Bài của em ở trên, L đã chuyển thành numeric thì k thể set vào thuộc tính String được đâu.

Reply

botloc April 19, 2008 at 11:38 am

L chưa chuyển sang dạng chuỗi nên kô hiển thị được rồi. Thanks anh nhiều.
Có cách nào hiển thị ngày giờ lên giao diện của mình không? Cho hiển thị lên textbox cũng được. Em dùng lệnh clock và date sau đó set vào textbox nhưng chẳng có hiện thị lên được. Thanks.

Reply

admin April 19, 2008 at 1:08 pm

Chào em.

Hiển thị không khó mà em.

Hiển thị ngày tháng hiện tại: str = date thì str là kiểu string rồi. Hiển thị ngay là dc.

Lệnh:
CLOCK Current date and time as date vector.

Vì thế nên em phải chuyển sang string là dc mà:

a = num2str(clock);

Chúc em thành công.

Reply

dongden_87 April 20, 2008 at 10:25 am

anh oi,cho em hoi lam sao chen anh vao giao dien gui minh tao duoc a,em co doc huong dan o Image Processing Toolbox roi nhung van ko thay gi ca! giup em voi

Reply

admin April 21, 2008 at 12:35 am

Chào em.

Anh đã trả lời rồi mà em. Để chèn ảnh vào GUI thực chất là mình hiển thị cái ảnh đó lên một figure, và figure đó nằm trong GUI. Như vậy, ta phải hiển thị image đó lên một axes ở trong GUI.

Em tạo một axes và viết lệnh trong hàm CreateFunction của điều khiển đó. Là hàm được gọi ngay khi ứng dụng khởi tạo các điều khiển.

Và dùng lệnh để hiển thị hình ảnh: imgshow. Em gõ lệnh

help imshow

để biết cách dùng nhé. Đây là hàm trong toolbox Image Processing mà.

Chúc em thành công.

Reply

dongden_87 April 22, 2008 at 9:39 am

em da hien thi duoc roi cam on anh nhe,

Reply

dongden_87 April 22, 2008 at 11:19 am

anh oi,em co van de nay nho anh giup do,.
Lam sao trong scope cua simulink minh muon no auto chay ma ko can phai nhap chuot vao bieu tuong simulation + start a?
cam on anh,

Reply

admin April 22, 2008 at 12:40 pm

Em muốn nó auto chạy kiểu gì ? Thì khi gắp thả các thứ xong thì mới cho chạy chứ em ?

Em k muốn nhấp chuột thì em dùng phím tắt :D .

Reply

admin May 4, 2008 at 9:57 pm

Em thử nghiên cứu xem sao :D

Reply

comay April 24, 2008 at 12:12 am

anh giúp em viết GUI nhỏ gồm 1 button và edittext-thể hiện ma trận vuông hệ hex và canh lề sao cho ma trận vuông ấy vừa y khung edit. Cảm ơn anh nhiều nhiều!

Reply

hung_dtvt April 26, 2008 at 2:10 am

Lần này vào đây hỏi chắc đúng chỗ rồi đây.Hehe.Cho e hỏi làm sao mình đưa 1 bức ảnh vào trong phần Gui của mình a nhỉ.Cho nó màu mè tí ấy mà

Reply

hung_dtvt May 4, 2008 at 10:25 pm

Thế không phải anh đã làm được rồi à. Hehe. Đúng là matlab này còn phải học nhiều thứ nữa nhỉ. :)

Reply

hung_dtvt April 26, 2008 at 2:24 am

Cái này hình như viết 1 function để xử cái chuỗi HEXA nhập vào rồi xuất ra ma trận. VÀo gui set cái giá trị trả về là được thì phải. Không biết thế đúng không aBắc nhỉ???

Reply

admin April 26, 2008 at 2:30 am

Em xem lại phần trao đổi ở bên trên về thêm ảnh nền vào GUI nhé.

Reply

hung_dtvt April 26, 2008 at 2:37 am

Nhưng sao e đánh lệnh help imgshow thì cứ báo không tìm thấy file imgshow.m là sao a nhỉ

Reply

admin May 6, 2008 at 7:57 am

Em xem hướng dẫn tại đây nhé:
http://www.blinkdagger.com/matlab/matlab-gui-tutorial-progress-status-bar

Chúc em thành công.

Reply

dongden_87 April 26, 2008 at 7:31 am

cho em hoi: Minh muon viet ki tu vao trong dao dien gui minh tao ra thi lam cach nao?thanks

Reply

hung_dtvt April 27, 2008 at 10:55 pm

A cho e hỏi tạo TAB làm sao a nhỉ.E có 3 panel giờ muốn chuyển sang dạng tab cho giao diện được đẹp hơn thì làm thế nào vậy a? Thanks

Reply

hung_dtvt April 28, 2008 at 2:36 pm

Yeah,thanks a.A đúng là trùm Matlab mất rồi. :P

Reply

hung_dtvt April 28, 2008 at 4:57 pm

E vừa thử phần Microsoft TabStrip control. nó cũng cho mình Tab nhưng làm sao để mình bấm vào 1 tab thì các panel kia ẩn đi vậy anh. Còn cách a chỉ tạo button và panel thì đâu có giống cái hình a đưa ra đâu.A up cái CT a làm lên cho e xem tí đc không? thanks a

Reply

hung_dtvt April 28, 2008 at 9:59 pm

E đang làm thử nhưng mà chưa đc.Hehe.Thế trong hàm callback của các button mình không cần dùng lệnh j hết phải ko a?

Reply

hung_dtvt April 28, 2008 at 11:11 pm

A Bắc cho e hỏi cái ni mới căng nè.E làm y như cái ví dụ luôn nhá.Bấm chuột trái ko được mà chuột phải thì ok. Đánh lệnh trong ButtonDownFcn đấy anh sao lại thế a nhỉ.Vậy sửa sao cho bấm chuột trái là hiện TAB thế a

Reply

hung_dtvt April 29, 2008 at 2:56 am

Thanks a nhiều. Cơ bản cũng tạm được rồi a à.Giờ thêm vài thứ nữa thì cũng ổn.Hehee

Reply

hung_dtvt May 2, 2008 at 1:21 am

Cho e hỏi nếu muốn dừng 1 chương trình matlab và hiển thị lỗi thì làm thế nào a nhỉ?

Reply

hung_dtvt May 4, 2008 at 8:38 pm

À a cho em hỏi làm sao để tạo 1 menu mà nó có thể kết nối đến 1 link a nhỉ. Hay là mình cóp page đó về rồi mình kết nối đến nó. Vừa rồi có xem mấy ví dụ anh làm thấy cũng hay hay mà chưa biết làm thế nào. :D

Reply

admin May 4, 2008 at 10:36 pm

Tất nhiên anh làm được rồi chứ em. Anh đang bận quá, nên em tự ngâm cứu xem có ra không nào.

Reply

botloc May 5, 2008 at 10:51 pm

anh Bắc, cho em hỏi, anh có chương trình mẫu nào tính toán thời gian thực hiện một chương trình nhỏ, hiển thị trong thanh waitbar kô…thanks.. :D

Reply

dongden_87 May 7, 2008 at 11:40 pm

anh oi ,em co van de can hoi?
lam sao minh co the the hien mot do thi len tren mot giao dien minh tao ra a?(muon the hien no tren cai axes ay)?
cam on anh nhieu, :?:

Reply

dongden_87 May 8, 2008 at 9:27 pm

phải chuyển các lệnh vẽ đồ thị khác sang dạng y = f(x)là sao anh,dau phai luc nao minh cung chuyen duoc ve dang y = f(x) ạ? anh co the giai thich ro hon ti duoc ko ạ?
anh oi,code nay em viet trong push button ma sao khi chay no lai bao loi:
x = -3.14:.1:3.14;
y = sin(x);
axes(‘axes1′);
plot(x,y);
Anh xem giup em no co sai sot gi ko a?

Reply

hung_dtvt May 8, 2008 at 10:21 pm

Cho em hỏi nếu muốn thay đổi màu nền thì vào property inspector phải ko?Chỉnh lại màu khác nhưng sau khi chạy vẫn ko ra màu mình chọn a nhỉ???

Reply

User_vietnam May 12, 2008 at 9:10 am

Chào các bác
Mình thấy bài viết về hướng dẫn lập trình Guide của bác Bắc rất hay, bác Bắc cố gắng viết tiếp các phần sau để cho chúng em học tập với nhé. Nhân tiện đây, các bác cho tôi hỏi, cách thiết lập và nhập 1 ma trận cấp nxn trong Guide như thế nào? cảm ơn các bác nhiều.

Reply

User_vietnam May 12, 2008 at 8:04 pm

Cảm ơn bác Admin về những điều góp ý ở trên. Vì mình mới bắt đầu học matlab cho nên cũng không biết nhiều, rất mong các bác chỉ bảo thêm. Nhân đây cho mình hỏi, mình đang có bài tập về máy điện đồng bộ với yêu cầu là vẽ đồ thị tốc độ máy phát theo thời gian khi có công suất đầu ra mong muốn và các thông số của máy phát. rất mong được bác chỉ bảo, xin cảm ơn rất nhiều.

Reply

User_vietnam May 12, 2008 at 8:29 pm

Cảm ơn Bác Admin về những điều góp ý ở trên. Mình mới học matlab cho nên chưa biết nhiều về nó, mong các bác chỉ bảo thêm cho mình. Nhân đây, bác cho mình hỏi mình đang có bài tập về máy điện đồng bộ, với yêu cầu là xuất kết quả tốc độ theo thời gian với thông số cho trước là: Công suất đầu ra mong muốn, các thông số của máy phát. Mong các bác góp y giúp mình nhé. Cảm ơn các bác rất nhiều.

Reply

Leave a Comment

Previous post:

Next post: