[Solved] Lấy giá trị trả về của hàm

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • g4t0
    Thành viên mới
    • Apr 2009
    • 6

    #1

    [Solved] Lấy giá trị trả về của hàm

    các bạn giúp tôi vấn đề này :
    Code:
    function [v,u]=tnghiem(x,y,z)
    k=1;
    u(1)=0;
    v(1)=0;
    while ((u(k)<100)&(v(k)<100))
       u(k+1)=x+y*k^2+z*k^3;
           v(k+1)=x*k+y*(k+1)+z*k^4;
           k=k+1;
    end
    sau khi nhập x,y,z thì kết quả trên CW
    Code:
    >> x=1;
    >> y=2;
    >> z=3;
    >> tnghiem(x,y,z)
    
    
    ans =
    
         0     8    56   254
    tại sao lại chỉ có 1 kết quả đầu ra? là giá trị v hay u?
    Tui muốn hiện cả kết quả u và v thì làm thế nào ???
    thank reply
    Last edited by ngohaibac; 01-05-2009, 21:02. Lý do: Thêm tag code
  • thaithien
    Thành viên tích cực
    • Mar 2007
    • 200

    #2
    Bạn xem thử đúng ý tưởng của bạn chưa nghen

    Code:
    function tnghiem(x,y,z)
    k=1;
    u(1)=0;
    v(1)=0;
    while ((u(k)<100)&(v(k)<100))
        u(k+1)=x+y*k^2+z*k^3;
        v(k+1)=x*k+y*(k+1)+z*k^4;
        k=k+1;
    end
    u
    v
    end

    Comment

    • thaithien
      Thành viên tích cực
      • Mar 2007
      • 200

      #3
      Giá trị mà bạn thu được ở trên là giá trị của v.Đặt các breakpoint và chạy debug thì bạn sẽ thấy

      Comment

      • g4t0
        Thành viên mới
        • Apr 2009
        • 6

        #4
        cảm ơn bạn. mơi học matlab nên gà mờ quá

        Comment

        • ngohaibac
          Moderator
          • Sep 2005
          • 600

          #5
          Muốn lấy 2 giá trị của hàm trên thì phải gán 2 biến làm giá trị trả về cho hàm đó thì mới được chứ. Gõ lệnh:
          Code:
          [v,u] = tnghiem(x,y,z)
          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

          • doinhabe
            Thành viên mới
            • Sep 2009
            • 2

            #6
            làm sao lấy được giá trị này để so sánh

            Mình có chương trìnhm khi chạy nó xuất ra commamd window các giá trị k, sai số err. mình muốn lấy các giá trị đó để so sánh nhưng kh lấy được. Các bạn giúp mình với. Đây là đaọn mã


            % FITFUN(lambda,t,y) returns the error between the data and the values
            % computed by the current function of lambda.

            Icb=131;
            I=[2 4.4 11.5];%
            i0=I/Icb;
            is=2*(i0.^2);
            y=10000*is';
            q=15;
            x = [0.9 1 1.1]';
            m=x';
            Vm=x*(sqrt(2));
            t=Vm;
            A = zeros(length(t),length(lambda));
            for j = 1:length(lambda)

            A(:,j) = exp(-lambda(j)*t);
            end
            for k=3:2:q

            k1=k/2^k;
            k2=(2*k-1)/(2^2*k-1);
            a1=(Vm);
            a12=(Vm.^k)*k1;
            a112=[a1 a12];
            a2=(Vm.^k)*k2;
            A1=A.*a112;
            A2=sum(A1')'.^2;
            B1=a2.*A(:,2);
            B2=B1.^2;

            D=real([A2 B2]);
            c=D\y;

            z =D*c;

            err = norm(y-z);

            %%%
            end

            end


            Cái mình cần là làm sao khi k=3:2:q thì tương ứng mình sẽ có một ma trân err tương ứng đễ so sánh

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            Đang tải...