How can one do this calculation?
2 次查看(过去 30 天)
显示 更早的评论
I have a data
Month City Temperature
1 1 25 24 22 19 ...
1 2 21 19 17 16 ...
2 1 23 19 18 17 ..
2 2 20 18 15 13 ..
Then what I like to do is to calculate, for each month, the nth highest temperature from temperature of every city of the month, and then add this info column for each row of this month.
In the above table, for n=2, the second highest temperature in Month 1 is 24, and 20 in Month 2. Thus the output one wants is
Month City 2nd_Hightst_Temp Temperatures
1 1 24 25 24 22 19 ...
1 2 24 21 19 17 16 ...
2 1 20 23 1918 17 ..
2 2 20 20 18 15 13 ..
Thank you in advance.
2 个评论
Image Analyst
2022-7-16
We'll get to work on it as soon as you attach your data and code to read it in with the paperclip icon. But first read this:
采纳的回答
dpb
2022-7-16
编辑:dpb
2022-7-17
tHi2=maxk(tData.Temperatures,2,2); tHi2=tHi2(:,2); % get top two, keep second only
tData=addvars(tData,tHi2,'before','Temperatures','NewVariableNames',{'2nd Highest Temperature'});
ADDENDUM/CORRECTION:
The second optional argument to operate over the second dimension (by rows) was inadvertently omitted...
2 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!