Thông báo

Collapse
No announcement yet.

hỏi về function trong matlab

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • hỏi về function trong matlab

    Các bạn cho mình hỏi: Khi viết một function thì làm thế nào để check xem function đó có bị lỗi hay không?
    Cảm ơn các bạn.

  • #2
    Bạn gọi function đó trong cửa sổ command bằng cách gõ tên của M file đó (M file phải nằm trong thư mục hiện tại đang làm việc của Matlab) và các tham số cho functions đó.

    Lưu ý: Dù làm với cái gì thì error luôn hiện ra ở cửa sổ command, đọc trong này có thể biết chính xác lỗi đang nằm ở đâu.

    Chúc bạn thành công.
    Technical sale at WT Microelectronics S'pore
    Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
    Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

    Comment


    • #3
      cảm ơn bạn có một gợi ý hay, nhưng ý mình hỏi là có cách nào để cho nó chạy từng dòng lệnh một và phát hiện lỗi ở dòng đó không? Tiện thể bạn cho mình hỏi xem cách làm đó cho cả chương trình lớn nữa, tức là chạy từng dòng lệnh một để soát lỗi đó mà.

      Comment


      • #4
        Bạn đọc thêm hướng dẫn nàycái này
        Technical sale at WT Microelectronics S'pore
        Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
        Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

        Comment


        • #5
          Hi all, Còn tùy thuộc vao function, function thông thường thì bạn ra của sổ function nhập giá trị biến thì biết ngay ah, con function như ode45 thì cái đấy chỉ kiểm tra ở chương trình bạn gọi ode45 thôi (vì nó con liên quan tới nhiều biến ở trong chương trình gọi nữa). Cứ gõ help là có hướng dẫn cụ thể ah

          Comment


          • #6
            Xin chào mọi người !
            Em vừa mới học sử dụng Matlab 7.4, khi tạo 1 .m file mà viết sai thì thấy dòng lệnh viết sai bị đánh dấu đỏ ở khung phải ngang với dòng lệnh bị sai của cửa sổ lệnh.
            Mọi người xem cho em cú pháp câu lệnh này sao lại sai ?
            n = 3 ;
            disp (' bạn có : ', n ' lựa chọn ' );
            Em viết lệnh disp như trên khi chạy thì lỗi.

            Comment


            • #7
              Bạn đọc trong phần help cua nó nhé:
              disp
              Display
              text or array
              Syntax disp(X)
              Description disp(X) displays an array, without printing the array name. If X contains a text string, the string is displayed. Another way to display an array on the screen is to type its name, but this prints a leading "X =," which is not always desirable. Note that disp does not display empty arrays.
              Examples
              One use of disp in an M-file is to display a matrix with column labels: disp(' Corn Oats Hay')
              disp(rand(5,3))

              Như vậy công thức lệnh bạn viết bị sai rồi,muốn như vậy bạn phải sử dụng như sau(chỉ là gợi ý thôi nhé)

              n=10;
              str=sprintf('Ban co %d lua chon',n);
              disp(str)


              Bạn chạy thứ cái này xem nào

              Comment


              • #8
                Mình phải tạo 1 button trên GUI mà khi click vào đó, nó sẽ hiển thị ra 1 file excel khác mà mình cần phải lấy dữ liệu từ file excel đó, sau đó mình chọn dữ liệu cần tìm trong file excel, nó tự động nhập vào matlab.

                Có ai biết không, chỉ giúp mình với?

                Cảm ơ nhiều!!!!

                Comment


                • #9
                  em muốn viết 1 function như sau : function [ xn ] = PPchiadoi( fx,a,b,e )
                  với fx là 1 biểu thức biến x, sau đó vào function sẽ gán biểu thức đó cho 1 biến thành hàm số như sau :

                  Code:
                  function [ xn ] = PPchiadoi( fx,a,b,e )
                  fx= inline('fx','x');
                  Viết thì vậy nhưng mà khi ra Command Window để sử dụng hàm thì nó lại hiện lỗi như vầy :
                  Code:
                  >> PPchiadoi(x^3-x-1,1,2,0.005)
                  ??? Undefined function or variable 'x'.
                  Các bác giúp em sửa với

                  Comment


                  • #10
                    Theo suy luận của bạn thì phải gọi như sau mới đúng:
                    Code:
                    PPchiadoi('x^3-x-1',1,2,0.005)
                    Nếu k phải string thì Matlab sẽ tính toán ra giá trị thôi, cái này là hiển nhiên theo logic. Những cái khác tự làm sẽ biết thêm
                    Technical sale at WT Microelectronics S'pore
                    Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
                    Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

                    Comment


                    • #11
                      Anh ơi cho em hỏi, em viét 1 chương trình Gui của Matlab, có 2 function. Em muốn Function dưới gọi được giá trị của function trên thì dùng lệnh gì ạ:
                      Ví dụ :
                      function selectkdq_SelectionChangeFcn(hObject, eventdata, handles)
                      % hObject handle to selectkdq (see GCBO)
                      % eventdata reserved - to be defined in a future version of MATLAB
                      % handles structure with handles and user data (see GUIDATA)

                      if (hObject == handles.cmd1lop)
                      Kdqlop=1
                      set(handles.Kdqlop, 'String',Kdqlop);
                      set(handles.cmdnx1,'String',' Day la loai day quan 1 lop');
                      else
                      Kdqlop=2
                      set(handles.Kdqlop, 'String',Kdqlop);
                      set(handles.cmdnx1,'String',' Day la loai day quan 2 lop');
                      end

                      % --- Executes on button press in ok.
                      function ok_Callback(hObject, eventdata, handles)
                      % hObject handle to ok (see GCBO)
                      % eventdata reserved - to be defined in a future version of MATLAB
                      % handles structure with handles and user data (see GUIDATA)

                      x=Kdqlop*100
                      set(handles.Kdqlop,'String',Kdqlop);

                      Trong function trên ta tính được Kdqlop, nhưng trong function dưới ta muốn lấy số liệu Kdqlop ở trên vào tính toán, nhưng em làm ko đc. ANh nào biết lệnh nào gọi đc gt của Kdqlop ở function dưới ko ạ

                      Comment


                      • #12
                        Bạn đọc hướng dẫn này về sử dụng trường handles nhé.
                        Technical sale at WT Microelectronics S'pore
                        Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
                        Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

                        Comment


                        • #13
                          Thank bac, để em đọc xem thế nào

                          Comment


                          • #14
                            Thank bác Hải Bắc nhé, em làm được rồi. Em làm đồ án tính toán dây quấn máy điện bằng Gui. Nhờ có bác, bài em đã hoàn thiện.
                            Do có đồ án này nên em mới nghiên cứu chương trình Gui của Matlab. Trong 1 tuần cũng làm xong. Em thấy Gui là 1 chướng trình rất hay. Nhưng có 1 số báo lỗi linh tinh mà chương trình vẫn chạy. Chương trình của em công thức cũng bình thường nhưng chờ thời gian tính toán cũng ko phải nhanh lắm

                            Comment


                            • #15
                              Giúp e sửa lỗi khai báo hàm

                              e có 1 chương trình thế này:
                              function [x0,fx0,n,xn,fxn]=chi7a(a,b,fx,dfx,tol);
                              f1x=inline(fx);d1fx=inline(dfx);
                              xi=linspace(a,b,100);
                              yi=subs(fx,'x',xi);
                              plot(xi,yi,'r');grid on;
                              [x0,fx0]=ginput;
                              for i=1:length(x0)
                              xn(i)=x0(i);n(i)=0;
                              k(i)=f1x(x0(i))/df1x(x0(i));
                              while abs(k(i))>=tol
                              xn(i)=xn(i)-x(k);
                              k(i)=f1x(xn(i))/df1x(xn(i));
                              n(i)=n(i)+1;
                              end;
                              fxn(i)=fx(xn(i));
                              end;
                              e muốn hỏi e khai báo hàm có gì sai mà khi chạy bị báo lỗi như thế này:
                              Input argument "fx" is undefined.

                              Error in ==> chi7a at 2
                              f1x=inline(fx);d1fx=inline(dfx);
                              thank các Bác nhìu ^.^

                              Comment

                              Về tác giả

                              Collapse

                              nvp20051984 Tìm hiểu thêm về nvp20051984

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X