Matlab絕對值

請問各位大大..

要如何寫出這樣的程式??

任意輸入5次數字..

求出來絕對值由大變小..

例:

輸入第1次數字:-51

輸入第2次數字:213

輸入第3次數字:71

輸入第4次數字:17

輸入第5次數字:-471

原先為

-51 213 71 17 -471

key =

471 213 71 51 17 <~這是求出絕對值過後的由大排到小順序

↓有辦法求出來絕對值由大到小負號還在、這樣行嗎?

 還是求出來絕對值 一定都會變正的ˊˋ??

key =

- 471 213  71 -51 17

Update:

Hope 大大好像有錯誤耶~

??? Error: File: C:\MATLAB6p5\work\Untitled3.m Line: 7 Column: 12

"end" expected, "=" found.

3 Answers

Rating
  • Chaos
    Lv 7
    1 decade ago
    Favorite Answer

    我程式是打這樣@@..

    可是執行還是會有問題..

    clc;clear;

    y='y';

    while(y=='y');

    F1=input('請輸入第一個整數:');

    F2=input('請輸入第二個整數:');

    F3=input('請輸入第三個整數:');

    F4=input('請輸入第四個整數:');

    F5=input('請輸入第五個整數:');

    a=[F1,F2,F3,F4,F5];

    N_new=sort(abs(N),'descend');

    disp('原先輸入為'),disp(N)

    disp('排序後為'),disp(N_new)

    y=input('y for yes , 0 for no: ');

    end

    Error in ==> E:\Matlab\work\Untitled10.m

    On line 10 ==> N_new=sort(abs(N),'descend');

    是我哪裡打錯囉嗎??

    錯的地方是你的變數名稱 我用N你用a 所以改其中一個就可以

    例如改成N如下

    F5=input('請輸入第五個整數:');

    N=[F1,F2,F3,F4,F5];

    N_new=sort(abs(N),'descend');

    此外,你用while的方式其實不好 因為一般不知道回圈要跑幾次才用while你的情況已經知道是跑5次,所以用for 迴圈的方式是比較正確的 你參考我之前的程式 把a改為N即可

    Source(s): 教學經驗
  • 1 decade ago

    請參考以下程式碼。BF為排序前陣列, AF為排序後陣列

    clear;

    BF=[];

    n = input('共有幾個整數?:');

    for i=1:n

    fprintf('第%2.0g 數,',i);

    BF(i) = input('請輸入:');

    end

    [AF,index] = sort(abs(BF),'descend');

    AF = AF.* sign(BF(index));

    Source(s): 個人程式撰寫經驗
  • 1 decade ago

    clear

    clc

    No=5; % the number of numbers

    X=zeros(No,1);

    i=1;

    while i<=No

    X(i)=input(['Input real number ', num2str(i), ' : ']);

    i=i+1;

    end

    sign_X=sign(X);

    abs_X=abs(X);

    [sort_abs_X, I]=sort(abs_X, 'descend');

    sort_X=zeros(No,1);

    for i=1:No

    sort_X(i)=sign_X(I(i))*sort_abs_X(i);

    end

    sort_X

    2008-06-23 00:18:59 補充:

    注意:亂碼'代表 ' 號

    2008-06-23 00:19:26 補充:

    亂碼指的是& # 3 9 ;

    2008-06-23 00:25:45 補充:

    亂碼 & l t ; 代表<號

    Source(s): % 注意:亂碼'代表字串宣告符號
Still have questions? Get your answers by asking now.