※ 引述《jickey27 (浪)》之銘言:
: 又來打擾各位大大了=_=
: 再度請益各位大大,現有一個資料庫檔名為a.txt
: (其中都為純數字,最多只有正負號之分),
: 欲求其中能被3整除的數,並由小至大排列之。
: 可是因為資料庫裡面有個數字為0,小弟不知道如何能不讀取0這個數..= =
: 我所寫的程式這樣判定,除任何數都會取出0這個數..>_<
: 以下是小弟目前所寫出的程式:
: clear
: s = load('a.txt') ;
: a = mod(s,3) ;
: b = find ( a == 0)
: c = s(b)
: Ans = sort(c)
: 在請問一下..
: 若要知道裡面總共有幾筆數字,上次有大大指導使用length這個指令,
: 但有辦法使用for迴圈方法解出嗎??
: 先感謝大大的回答...^.^
%爛作法:(假設s有100個元素)
for n=1:100
switch s(n)
case 0
s(n)=[ ];
end
end
(這個做法直觀,但是很慢!)
%必殺招...(高級作法,一行死!)
s(find(s==0))=[ ];
find(s==0)是用來找出s矩陣裡面,零元素的index,然後這個索引再放進去
s裡面,令成空矩陣,空矩陣在這裡的功用是刪除那格記憶體.
(這個做法超快! 而且符合Matlab矩陣運算的精神)
*同樣的手段,對方陣是一樣一樣適用,很適合用來找出整個矩陣的某個數值
元素,然後一口氣更改.
--
★我喜歡夏天,就像我喜歡看著穿上白衣黑裙的妳★
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.89.97
※ 編輯: pipidog 來自: 140.113.89.97 (12/02 00:40)