精華區beta MATLAB 關於我們 聯絡資訊
※ 引述《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)