Tìm Kiếm Phần Mền Windows - Thủ Thuật Windows

Lập Trình Gui Matlab – Trao Đổi Dữ Liệu Giữa 2 Gui Matlab

Đánh Giá Bài Viết

Hướng Dẫn Truyền Dữ Liệu giữa 2 Gui với nhau

Trong bài viết này Tôi xin hướng dẫn đến bạn cách để truyền và nhận một dữ liệu nào đó cho một Gui khác trong phần mền Matlab. Trước khi học bài này thì bạn nên học cách làm sao để liên kết 2 Gui với nhau trước đã. Vì khi bạn biết cách gọi Gui A  sang Gui B thì lúc đó ta mới học cách truyền nhận dữ liệu giữa chúng với nhau.

lap trinh gui matlab truyen du lieu giua 2 gui trong matlab
lap trinh gui matlab truyen du lieu giua 2 gui trong matlab

Việc trao đổi dữ liệu này thực sự rất cần thiết trong việc lập trình chúng ta. Sở dĩ tại sao tôi lại nói vậy? Xin thưa với bạn rằng khi làm một dự án lớn thì đồng nghĩa Code chúng ta quá nhiều. Như vậy ta phải biết cách chia nhỏ ra thành từng thành phần nhỏ khác nhau. Như vậy thì ta cần chia nhỏ Gui ra thành nhiều Gui khác đảm nhaann 1 nhiệm vụ nào đó. Việc chia như vậy đồng nghĩa với bạn cần phải trao đổi dữ liệu qua lại để ta có thể tính toán khi nhận được dữ liệu từ Gui khác.

Thực ra thì để nhận được dữ liệu từ một Gui khác thì cũng không khó lắm đâu. Tôi và bạn cùng làm một ví nhỏ dưới đây nhé. Chúng ta sẽ không đặt quá nặng nề về giao diện cũng như chức năng của nó. Đơn giản là ta hiểu được vấn đề rồi thì từ đó bạn có thể áp dụng vào từng bài toán cụ thể của mình sao cho hợp lý.

Giả sử tôi có 2 Gui như hình phía dưới

lap trinh gui matlab trao doi du lieu giua 2 gui
lap trinh gui matlab trao doi du lieu giua 2 gui

Bài toán của ta sẽ như sau:Đối với GuiA thì cho người dùng nhập 2 số của bienX và bienY sau đó ta sẽ cộng 2 kết quả này. Khi có kết quả rồi ta sẽ gán vào ketQua và truyền dữ liệu của kết quả này sang cho GuiB cụ thể hơn là gán vào ketQuaGuiA. Oke ta cùng bắt tay vào làm nhé,

1. Ở Gui A

Bạn hãy vào Function tinhToan để viết lệnh cho nó

– Tạo một biến global là result

global result

– Lấy giá trị nhận được của Tag bienX

resultX = str2num(get(handles.bienX, 'string'));

– Lấy giá trị nhận được của Tag bienY

resultY = str2num(get(handles.bienY, 'string'));

Trong đó:

  • str2num(): Chuyển đổi kiểu chuỗi sang số. Tại vì ô nhập của ta là Edit Text cho nên nó sẽ trả về kiểu string
  • get(): Lấy giá trị

– Tính giá trị của 2 biến x,y

result = resultX + resultY;

– Gán giá trị vào tag ketQua

set(handles.ketQua, 'string', num2str(result));

Trong đó: num2str(): Truyển kiểu số sang chuỗi.

Oke bạn thử chạy trương trình nên và xem kết quả thế nào nhé.

truyen du lieu giua 2 gui matlab
truyen du lieu giua 2 gui matlab

Và đây là toàn bộ code của file trương trình trong Gui A

file .m gui matlab
file .m gui matlab

Để trông chuyên nghiệp hợp thì bạn có thể cho Tag ketQua Off Enable đi cũng được. Vì nó cũng chỉ nhận kết quả cho nên ta cũng không cần thiết để người dùng nhập dữ liệu vào ô này làm gì cả.

2. Ở Gui B

Oke để Gui B có thể nhận được dữ liệu từ Gui hay nói rõ hơn để lấy được giá trị từ biến result. Thì ta làm sau.

Giả sử khi bạn chạy trương trình của Gui B nên thì sẽ có kết quả luôn thì ta sẽ tiến hành viết vào function OpeningFcn 

– Lấy dữ liệu

global result

Trong đó: global result: Đã khởi tạo ở Gui A

– Gán giá trị và Tag ketQuaGuiA ở Gui B

set(handles.ketQuaGuiA, 'string', result);

Bạn chạy trương trình nên để xem kết quả.

trao doi du lieu giua 2 gui trong matlab
trao doi du lieu giua 2 gui trong matlab

Như vậy ta đã hoàn thành nhiệm vụ giải ví dụ trên rồi đó.

Mấu chốt của bài học này đó là nếu bạn muốn truyền giá trị nào đó từ Gui A chẳng hạn.Thì bạn chỉ cần cho giá trị đó vào một biến nào đó sau đó đặt trước nó kiểu global. Khi muốn nhận giá trị từ biến đó thì Gui B chẳng hạn bạn có thể gọi nó bằng

global bienTruyenDuLieu

Chỉ một câu đơn giản trên là bạn đã có gán và lấy dữ liệu từ một Gui khác rồi đó.

Tổng Kết:

Trên đây tôi và bạn đã học cách truyền dữ liệu giữa 2 Gui thành công rồi. Qua bài học này bạn có thể tự áp dụng vào từng trường hợp của bạn. Vi vọng bài viết này giúp ích cho bạn! Chúc bạn thành công!

Lưu ý khi bạn bình luận tại VuTienIT.Com

Bạn hãy sử dụng địa chỉ Email thật và tên thật để VuTienIT có thể xưng hô và trả lời bình luận qua Email.
Bạn hãy bình luận bằng Tiếng Việt và có dấu.
Nếu bạn muốn tìm kiếm phần mền nào đó các bạn có thể nhập tên phần mền vào ô tìm kiếm bên trên đầu.
Nếu Link tải File bị hỏng bạn hãy bình luận bên dưới VuTienIT sẽ cập nhật lại Link tải cho bạn.
Nếu bạn thấy thích bài viết này thì bạn hãy Share bài viết để VuTienIT có nhiều bài viết hay hơn dành cho bạn!
VuTienIT chúc bạn gặp nhiều may mắn thành công trong cuộc sống.
 

Hãy trở thành người đầu tiên bình luận!

Thông báo
avatar
250

wpDiscuz