簡體   English   中英

八度有趣的錯誤-無法定義功能

[英]Octave funny error - Cannot define function

這是我的代碼:

我在片刻或ifs之后得到錯誤,我不知道如何解決。 說出類似的內容:“顯示所有3669種可能性(y或n)”,然后開始顯示無休止的清單:p

我必須錯誤地定義了函數,但找不到位置。 如果您告訴我問題出在哪里或者我應該如何解決,那將非常有幫助。

R,Rer和V是向量; pc,dg和cs是數字

function [R,Rer] = er_dig(V,pc,dg,cs) 
i=0;
dg_aux=V;
while (abs(rem(dg_aux,1))!=0)
    dg_aux=dg_aux.*10;
    i++;
endwhile

Rer= (V.*dg)./100 + dg.*(10^(-i));


if (Rer<1)
    Rer_aux=Rer;
    k=0;
    while (abs(rem(Rer_aux,1))>0)
        Rer_aux=Rer_aux.*10;
        k++;
    endwhile

    if (Rer_aux>=10)
        k--;
    endif

    j=1;
    while (j<=dim(V))
        validador=(Rer(j)*(10^(k+cs))-fix(Rer(j)*(10^(k+cs-1)))*10);
        if (validador>=2)
            Rer(j) = (fix(Rer(j)*(10^(k+cs-1))) +1)/(10^(k+cs-1));
        elseif
            Rer(j) = (fix(Rer(j)*(10^(k+cs-1))))/(10^(k+cs-1));
        endif
    j++;
    endwhile


    R=V;
    i=1;
    while (i<=dim(V))
        R(i) = fix(R(i)*10^(k+cs-1))/10^(k+cs-1);
        i++;
    endwhile

elseif
    Rer_aux=Rer;
    k=0;
    while(Rer_aux>1)
        Rer_aux=Rer_aux./10;
        k++;
    endwhile


    j=1;
    while(j<=dim(V))
        validador=(Rer(j)*(10^(-k+cs))-fix(Rer(j)*(10^(-k+cs-1)))*10);
        if(validador>=2)
            Rer(j) = (fix(Rer(j)*(10^(-k+cs))) +1)/(10^(-k+cs));
        elseif
            Rer(j) = (fix(Rer(j)*(10^(k+cs))))/(10^(k+cs));
        endif
    j++;
    endwhile


    R=V;
    i=1;
    while(i<=dim(V))
        R(i) = fix(R(i)*10^(-k+cs))/10^(-k+cs);
        i++;
    endwhile

endif

終端功能

您是從腳本中調用還是復制粘貼? 如果要復制和粘貼,並且代碼中的任何地方都有一個雙標簽,則兩個標簽用於自動完成。 嘗試將該代碼放入文件中,然后從Octave提示符中調用它,指定文件的路徑。 如果要復制和粘貼類似的代碼,請使用空格作為縮進。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM