[問題] 有沒有資料篩選比較有效率的方法(矩陣)已回收

看板MATLAB作者 (光)時間15年前 (2009/06/09 22:30), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
正在當好人= =||| 事情是做完了,可是想問問有沒有比較有效率的作法!! 連備註都要寫清楚,好人不好幹!! 原始資料是一個 N 乘 8 矩陣資料 希望擷取整份文件中 第7行比第3行大的整列資料 然後另存成新的TXT檔 不知道有沒有更有效率的作法? =================以下是我用迴圈去檢查的===================== clear all;clc; A=load('text.txt'); % 自己改要輸入的檔案名稱 B=[]; % 做一個矩陣叫做B 做起來放著!! Z=size(A); % Z=A矩陣(資料)的大小(幾列幾行) n=Z(1,1); % n=A矩陣的列數(就是你有幾筆資料) m=1; % 等會會用到的數字,B矩陣(你想挑的資料)從第一筆開始 for i=1:n % 檢查的過程從第一筆資料到第n筆 (n在上面,自己看捏) if A(i,7)>A(i,3) % 如果A矩陣(原始資料)第i列(筆)第7行比第3行大 % i從1開始1筆1筆慢慢增加一直檢查到n % 也就是i=1跑一次 i=2跑一次 一直跑到i=n(最後一筆) B(m,:)=A(i,:); % 如果檢查的結果符合你設定的條件(第3行大於第7行) % 那B的第m筆資料(整行) = A的這一行(檢查通過的那一行) m=m+1; % 如果檢查結果有符合你設定的條件m自動+1 % 也就是下一次他在找到有符合條件的,他會填在B的下1筆的位置 end end fid=fopen('text_out.txt','wt'); %自己改要輸出的檔案名稱(反正接下來就是輸出) fprintf(fid,'%10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f\n',B'); fclose(fid); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.138.52

06/09 22:45, , 1F
B=A(A(:,7)>A(:,3),:); 不知是你要的嗎?
06/09 22:45, 1F

06/10 01:03, , 2F
m(__ __)m 原來我是白吃~~用這種吃資源的方法跑QQ
06/10 01:03, 2F

06/10 01:03, , 3F
感謝大大的指導.......又讓我覺到一招了!!!
06/10 01:03, 3F
文章代碼(AID): #1ABd7hNX (MATLAB)