Thông báo

Collapse
No announcement yet.

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

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

  • [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, 22:02. Lý do: Thêm tag code

  • #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


    • #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


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

        Comment


        • #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


          • #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...
            X