[問題] 找出矩陣中錯誤的地方修正已回收

看板MATLAB作者 (光)時間15年前 (2009/06/21 22:53), 編輯推噓0(0011)
留言11則, 2人參與, 最新討論串1/2 (看更多)
事情是這樣的~ 現在小弟有個矩陣A=[n筆資料,8行] 裡面第七行應該小於第三行! 所以凡是第七行比第三行大的資料是錯的, 要對調位置!! 不幸的是小弟仍然只會用迴圈檢查然後換位置 資料量大的時候很夭壽QQ 所以又是上來問問看有沒有大大有高速秒殺的方法 1F大大抱歉~ 上次您幫我找出了一個矩陣B等於所有錯誤的部份 而我也將他整個第三行與第七行交換了!! 但是@@||| 要把他放回A矩陣裡面的相對位置..... 我就傻了QQ 也試著用您給的A(A(:,7)>A(:,3),:)加上if去嘗試 可是跑不出我要的東西~ 只好在上來發問了Q_____Q 還請您再賜教>"< ==========以下是我寫的m擋,請大大們鞭小力一點========== clear all;clc; A=load('text.txt'); Z=size(A); n=Z(1,1); for i=1:n if A(i,7)>A(i,3) B(i,:)=A(i,[1 2 7 4 5 6 3 8]) else B(i,:)=A(i,:) end end fid=fopen('text_FIX.txt','wt'); fprintf(fid,'%10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f\n',B'); fclose(fid); ============================================================================= 再偷問一下,有沒有辦法直接讓他跑到最後一筆 而不是像我那樣先找出矩陣有n筆資料 然後再去for i=1:n 可以直接 for i=1:(最後一列) 這樣嗎? 有大大提到用end來處理, 可是我用R2007a版本的MATLAB似乎不給我這樣做QQ ==========問題小追加XD 找第一行資料最大與最小的整筆資料 已經採用MAX和MIN搞出來了 可是還是想問有沒有其他的想法 所以大膽放上希望各位給些意見^^ 還有種情形,就是若最大(小)值有兩筆以上 能不能都列出來呢? ========找出max與min小弟的寫法========== clear all;clc; A=load('text.txt'); [m1 n1]=max(A); [m2 n2]=min(A) B=A(n1(1),:) C=A(n2(1),:) ================================== 在這裡先感謝各路高手的回覆m(___ ___)m -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.138.52 ※ 編輯: loverwhy 來自: 61.62.138.52 (06/21 23:09)

06/22 01:10, , 1F
問題1你不是問過了?
06/22 01:10, 1F

06/22 01:10, , 2F
問題2 把n換成end
06/22 01:10, 2F

06/22 01:11, , 3F
問題3 max和min可以達到你的要求沒錯
06/22 01:11, 3F

06/22 01:25, , 4F
上次是找出了錯誤的部份,但是如果挑出來進行修正
06/22 01:25, 4F

06/22 01:25, , 5F
我不知道怎麼把修正的資料放回原來的位置@@|||
06/22 01:25, 5F

06/22 01:25, , 6F
我用MATLAB R2007a 他不讓我把n換成end >"<
06/22 01:25, 6F

06/22 01:26, , 7F
最大最小的部份~目前有寫出來~在放上請您鞭一下^^
06/22 01:26, 7F
※ 編輯: loverwhy 來自: 61.62.138.52 (06/22 01:38)

06/22 01:40, , 8F
end的地方我記錯了sorry 不過n那邊你可以直接n=size(A,1)
06/22 01:40, 8F
※ 編輯: loverwhy 來自: 61.62.138.52 (06/22 01:40)

06/22 01:42, , 9F
WOW~了解!!有時看半天HELP裡面的範例也不太會應用QQ
06/22 01:42, 9F

06/22 01:43, , 10F
我資質太低嗎~每次搞了半天都會看到神人用簡單的方法秒殺
06/22 01:43, 10F

06/22 01:44, , 11F
看來還需要多花時間跟MATLAB搞熟一點>"<
06/22 01:44, 11F
文章代碼(AID): #1AFabef- (MATLAB)
文章代碼(AID): #1AFabef- (MATLAB)