How do i select some columns that have maximum some values ?

Dear experiences
i have a data look like at the following in an excel file called (data.xls)
obs-name Var1 var2 var3 ..... varn
obs1 0.09 0.23 0.0 0.03
obs2 0.21 0.0 0.2 0.4
etc...
  • - i need to calculate the averages of variables values across all observation names ( every var column is independent from others).
  • - then eliminate all columns except (k) columns that have (k) largest average values ...
  • - for example if k=5 then result includes only observation names and 5 columns that involve largest 5 average values?
thanks for any participation ...

 採用された回答

Andrei Bobrov
Andrei Bobrov 2017 年 4 月 3 日

1 投票

T = readtable('data.xlsx');
dm = mean(T{:,2:end});
[~,ii] = sort(dm,'descend');
k = 2; % Let k = 2
Tout = T(:,[1,sort(ii(1:k)+1)]);

2 件のコメント

ahmed obaid
ahmed obaid 2017 年 4 月 3 日
thank you a lot, very smart solution
ahmed obaid
ahmed obaid 2017 年 4 月 4 日
編集済み: ahmed obaid 2017 年 4 月 4 日

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by