Trang 1/2 12 cuốicuối
kết quả từ 1 tới 10 trên 14
  1. #1
    Tham gia
    Nov 2009
    Nơi Cư Ngụ
    TP HCM
    Bài viết
    17
    Thanks
    0
    Thanked 5 Times in 3 Posts

    Thumbs up Ai đã làm cái này chưa

    chào các bạn !
    Mình đang làm đồ án mô phỏng trên Matlab, làm GUI
    Ý định của mình là trước tiên trên GUI sẽ hiện vài dòng giới thiệu :tên đề tài, trường lớp, tên tuổi .......

    Sau đó mình nhấn nút NEXT nó sẽ chuyển sang cửa sổ làm việc chính của mình và tắt cái cửa sổ giới thiệu lúc trước đi .
    hình :

    Vậy mình phải dùng lệnh gì trong callback của NEXT hay phải làm thế nào, các bạn chỉ giúp mình với.
    mình đang bí chổ đó quá.
    Cảm ơn nhiều.!
    ... Em hỡi em, nơi server có biết? Ở client, anh khắc khoải nhớ thương EM... http://leduyqn.blogspot.com/

  2. The Following User Says Thank You to leduy_ld For This Useful Post:

    kudo kem (28/06/2015)

  3. #2
    Tham gia
    May 2010
    Nơi Cư Ngụ
    Italy
    Bài viết
    50
    Thanks
    0
    Thanked 20 Times in 11 Posts

    Mặc định

    Mình tạm gọi GUI_1 và GUI_2 là 2 cái interface như trên. Để mở GUI_2 từ GUI_1 bạn chỉ cần gọi tên GUI_2 trong callback của nút nhấn. Để đóng GUI_1 khi GUI_2 được bật lên bạn cần lấy handle của GUI_1 và ra lệnh đóng nó ở GUI_2, việc này làm như sau.

    Trong phần OpeningFcn của GUI_1 bạn lấy handle của nó bằng
    h1 = gcf;

    sau đó truyền cái biến này lên GUI "0", được hiểu là GUI chính của Matlab khi nó được mở lên.
    setappdata(0,'GUI1_handle',h1); % tên biến là GUI1_handle

    Trong phần OpeningFcn của GUI_2 bạn lấy cái handle này
    h1 = getappdata(0,'GUI1_handle');

    rồi đóng cái GUI_1 lại
    close(h1)

    Xong.

  4. The Following 2 Users Say Thank You to anananh For This Useful Post:

    kudo kem (28/06/2015), quangphuc_3011 (22/12/2010)

  5. #3
    Tham gia
    Nov 2009
    Nơi Cư Ngụ
    TP HCM
    Bài viết
    17
    Thanks
    0
    Thanked 5 Times in 3 Posts

    Mặc định

    Oh, sugoi !
    Cảm ơn bạn nhiều. Mình làm đựoc rồi.
    Mình tìm không thấy nút Thanks đâu hết.

    Mình có một câu hỏi nữa, nếu được thì anananh giúp luôn với.
    MÌnh muốn chèn hình vào trong GUI, mình đã làm như sau: Tạo một Axes . rồi trong create Fcn , mình dùng lệnh : imshow('đường dẫn của hình trên máy tính'); -> chạy OK
    nhưng có khi mở lại chơng trình GUI, nó đòi mình thêm Tag cho Axes . Sau khi thêm Tag thì chạy bình thường. Nhưng khi tắt Matlab đi rồi mở lại thì nó không hiện hình nữa, nó bắt minh lại ghi vào cái Tag nữa..... cứ như vậy nữa (vì cái tag nó tự xóa mất tiêu).
    Bạn có cách nào xử lý giúp mình với. Hay còn cách chèn hình nào hiệu quả hơn không. ?

    Thanks !
    ... Em hỡi em, nơi server có biết? Ở client, anh khắc khoải nhớ thương EM... http://leduyqn.blogspot.com/

  6. #4
    Tham gia
    Oct 2009
    Nơi Cư Ngụ
    tp
    Bài viết
    20
    Thanks
    8
    Thanked 0 Times in 0 Posts

    Mặc định

    Trích Nguyên văn bởi leduy_ld Xem bài viết
    Oh, sugoi !
    Cảm ơn bạn nhiều. Mình làm đựoc rồi.
    Mình tìm không thấy nút Thanks đâu hết.

    Mình có một câu hỏi nữa, nếu được thì anananh giúp luôn với.
    MÌnh muốn chèn hình vào trong GUI, mình đã làm như sau: Tạo một Axes . rồi trong create Fcn , mình dùng lệnh : imshow('đường dẫn của hình trên máy tính'); -> chạy OK
    nhưng có khi mở lại chơng trình GUI, nó đòi mình thêm Tag cho Axes . Sau khi thêm Tag thì chạy bình thường. Nhưng khi tắt Matlab đi rồi mở lại thì nó không hiện hình nữa, nó bắt minh lại ghi vào cái Tag nữa..... cứ như vậy nữa (vì cái tag nó tự xóa mất tiêu).
    Bạn có cách nào xử lý giúp mình với. Hay còn cách chèn hình nào hiệu quả hơn không. ?

    Thanks !
    Bạn có thể dùng cách này:
    varargout{1} = handles.output;
    hinhnen=imread('anhnen.jpeg'); % với anhnen là tên tấm ảnh bạn cần chèn, phải đặt ảnh cùng thư mục với file của mình.
    axes(handles.axes1);
    image(hinhnen);

    Chúc luôn vui!
    Lần sửa cuối bởi thieutuoc; 02/02/2015 lúc 08:55

  7. #5
    Tham gia
    May 2010
    Nơi Cư Ngụ
    Italy
    Bài viết
    50
    Thanks
    0
    Thanked 20 Times in 11 Posts

    Mặc định

    mình chưa bị lỗi này bao giờ nên khg biết nguyên nhân luôn . Bạn thử Google câu báo lỗi, hoặc thử cách này: luôn xác định axes cần tác động trước rồi mới cho hiện hình ra, bạn thêm lệnh:

    axes(handles.???) trong đó ??? là tên của cái axes bạn muốn hiện cái hình lên rồi mới
    imshow(...)

  8. #6
    Tham gia
    Nov 2009
    Nơi Cư Ngụ
    TP HCM
    Bài viết
    17
    Thanks
    0
    Thanked 5 Times in 3 Posts

    Mặc định

    Cảm ơn bạn nhé .
    MÌnh thử rồi. Cả 2 cách mình đều viết trong hànm openingFnc
    Cách thứ nhất bị lỗi, trên cái axes nó vừa hiện hình mà còn vừa hiện luôn mấy cái thông số chia trục nằm ngang và trục đứng nữa (giống như trong đồ thị vậy đó).
    Mình làm cách thứ 2 thì ok. Hơn nữa với cách thứ 2, trong hàm imshow(), minh cũng không cần để link đường dẫn đến hình trên máy tính, mà chỉ để tên hình và để hình đó cùng thư mục, lúc trước mình sợ cái đường dẫn này nhất, vì sợ đem qua máy khác là nó báo lỗi. Giờ thì ok rồi .
    Cảm ơn bạn rất nhiều !

    Trong GUI luôn có cái hàm đàu tiên là : function varargout = ...... hàm này có chức năng gì vậy bạn . Có phải nó giống như mình khai báo những thông số như tên tuổi .... của cái GUI mình đang làm không ?
    Mình đọc phần help varargout rồi, nhưng thật sự là chưa hiểu rõ lệnh varargout là gì nữa . Bạn chỉ mình cái này luôn với .

    Thân !
    ... Em hỡi em, nơi server có biết? Ở client, anh khắc khoải nhớ thương EM... http://leduyqn.blogspot.com/

  9. #7
    Tham gia
    May 2010
    Nơi Cư Ngụ
    Italy
    Bài viết
    50
    Thanks
    0
    Thanked 20 Times in 11 Posts

    Mặc định

    Cách 1 vì dùng hàm image để xuất hình ra nên nó vẫn để lại các hệ trục, nhưng được cái là hình của bạn sẽ được canh đúng kích thước axes.
    theo mình biết varargout là số đối số trả về của hàm, có thể được dùng cho mục đích kiểm tra nhanh 1 hàm có chạy hay không. Mình hay dùng varargin hơn để kiểm tra người dùng có nhập đủ tham số ngõ vào không để xuất thông báo lỗi
    Lần sửa cuối bởi anananh; 29/05/2010 lúc 00:59

  10. #8
    Tham gia
    Nov 2009
    Nơi Cư Ngụ
    TP HCM
    Bài viết
    17
    Thanks
    0
    Thanked 5 Times in 3 Posts

    Mặc định

    Thanks !. Mình hiểu rồi.
    Mình đang mô phỏng thuật giải Viterbi trên matlab. Ý định mình muốn sử dụng thuật giải với quyết định mềm.
    Khi làm đến khối giai mã , mình dùng hàm vitdec . Chạy nó cứ báo lỗi, mà mình không biết tại sao. Mnhf cũng dã nghiền ngẫm cái hàm này trong phần help, không biết là với hàm vitdec này thì khi dùng cần chứ ý đều gì. Bạn đã làm cái này chưa. Giúp mình gỡ rối với.

    Code mình như thế này;
    tblen = 5*L ; % L là chiều dài ràng buộc
    opmod = 'tern' ; % vì khi mã hó mình dung hàm convenc nên gời dùng mod tern (thấy trong help nó chỉ vậy)
    decbit = vitdec(encbit,trellis,tblen,opmod,'soft',nsdec); % mình đã xây dựng sơ đò trellis

    Vậy mà nó cứ báo lỗi ở hàm vitdec, không biết làm sao ?
    ... Em hỡi em, nơi server có biết? Ở client, anh khắc khoải nhớ thương EM... http://leduyqn.blogspot.com/

  11. #9
    Tham gia
    Oct 2009
    Nơi Cư Ngụ
    tp
    Bài viết
    20
    Thanks
    8
    Thanked 0 Times in 0 Posts

    Mặc định

    Trích Nguyên văn bởi anananh Xem bài viết
    Cách 1 vì dùng hàm image để xuất hình ra nên nó vẫn để lại các hệ trục, nhưng được cái là hình của bạn sẽ được canh đúng kích thước axes.
    theo mình biết varargout là số đối số trả về của hàm, có thể được dùng cho mục đích kiểm tra nhanh 1 hàm có chạy hay không. Mình hay dùng varargin hơn để kiểm tra người dùng có nhập đủ tham số ngõ vào không để xuất thông báo lỗi
    Bạn nói chính xác thiệt mình dùng cách của bạn thì hình nền của mình ko đúng với kích thước axes của mình.
    P/s: bạn biết có cách nào khắc phục không vậy.
    Chúc vui!
    Lần sửa cuối bởi thieutuoc; 02/02/2015 lúc 08:54

  12. #10
    Tham gia
    May 2010
    Nơi Cư Ngụ
    Italy
    Bài viết
    50
    Thanks
    0
    Thanked 20 Times in 11 Posts

    Mặc định

    Bạn có thể dùng hàm image() rồi thêm lệnh axis off để tắt hệ trục.

    Giải mã Viterbi bằng hàm của Matlab mình lâu rồi không xài, nhớ mang máng là bạn phải đổi dữ liệu dạng 0, 1 thành -1 với 1 nó mới làm được. Mình hiện giờ không rảnh, chắc vài ngày nữa mới xem lại được. Hy vọng bạn đã tìm ra rồi, post kinh nghiệm lên đây luôn nha

Trang 1/2 12 cuốicuối

Quyền Sử Dụng Ở Diễn Ðàn

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •