myfun[data_]:=Block[{temp,tempdata=data,i},
temp[i_]:=Block[{x},
x=Position[tempdata[[All,i]],Max@tempdata[[All,i]]][[1,1]];
Set[tempdata[[x,i+1;;-1]],Table[-Infinity,{Length@tempdata-i}]];
tempdata];
Do[tempdata=temp[i],{i,Length@tempdata-1}];
Max[tempdata[[All,#]]]&/@Range[Length@tempdata]];
A={{15,20,17,27},{14,78,41,21},{32,14,12,14},{14,25,25,24}};
myfun[A]
Mathematica 教學 行取最大值後,那一行列不再考慮
由 戴忠淵 於 2013年12月12日星期四
上午10:44 發表
![作者 goldberg73 (高柏) 看板 MATLAB 標題 [討論]行取最大值後,那一行列不再考慮?由左而右 時間 Thu Dec 12 09:28:12 2013 ─────────────────────────────────────── 假設有一A矩陣 4*4 A=[15 20 17 27; 14 78 41 21 ; 32 14 12 14 ; 14 25 25 24] 15 20 17 27 14 78 41 21 32 14 12 14 14 25 25 24 想要每一行取最大值,從第一行開始, 且出現最大值的那一列, 往後不予考慮 參與第二行取最大值... 由此類推 結果為: 32 (第一行的最大值為32 , 因此第二行取最大值,不考慮第三列) 78 (第二行的最大值是78, 因此第三行取最大值 不考慮第三列 和第二列) 25 (第三行的最大值是25 , 因此第四行取最大值不考慮第四列 第三列和第二列) 27 (不考慮 第二 三 四列下, 第四行的值為27)](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLBQrTPRPYa2hqahVnGUww7ej7Ji2PXkkASy8MF3LPBiknq9r4IU1-x7iiUAWmCkmLYgjpYrPoUXqHcshOCkT6pSJAo8KdcoSavl-IJw3Nj3Q3g-h2CZh5DaCdE9zWEEiPbZmf3TmrcRY/s400/%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7+2013-12-12+%E4%B8%8A%E5%8D%8810.42.45.png)
讀者回應 ( 0 意見 )
訂閱發佈留言 (Atom)
發佈留言
Please leave your name and tell me what you thought about this site. Comments, suggestions and views are welcomed.
如果這篇文章對你有幫助,那請留個訊息給我~