Stats

Popular Posts

Followers

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)
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]
Tags: , ,

讀者回應 ( 0 意見 )

發佈留言

Please leave your name and tell me what you thought about this site. Comments, suggestions and views are welcomed.

如果這篇文章對你有幫助,那請留個訊息給我~