[問題] 找出矩陣中錯誤的地方修正已回收
事情是這樣的~
現在小弟有個矩陣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
06/22 01:10, 1F
→
06/22 01:10, , 2F
06/22 01:10, 2F
→
06/22 01:11, , 3F
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
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
06/22 01:40, 8F
※ 編輯: loverwhy 來自: 61.62.138.52 (06/22 01:40)
→
06/22 01:42, , 9F
06/22 01:42, 9F
→
06/22 01:43, , 10F
06/22 01:43, 10F
→
06/22 01:44, , 11F
06/22 01:44, 11F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):