Find max value with multiple conditions

How can I find max value with 2 or more conditions (such as maxifs in excel).
Thanks before

6 件のコメント

darova
darova 2020 年 1 月 15 日
You should attach more details, example
Mohammad Sami
Mohammad Sami 2020 年 1 月 16 日
If your data is table, create a grouping variable in your data. Then use the function groupsummary.
Anita Fitriani
Anita Fitriani 2020 年 1 月 16 日
Oh Im sorry for that. So I have data table of wave height. First data is year, the 2nd one is wave height, and the last one is direction. Then, I want to find the maximum of wave height but with spesific year and specific direction. Example, I would find the max of wave height in 2008 from North. If we use excel for this, we could use MAXIFS. And the result that I mean attached as picture here.
Anita Fitriani
Anita Fitriani 2020 年 1 月 16 日
Andrei Bobrov
Andrei Bobrov 2020 年 1 月 16 日
Please attach small part of your excel-file or data table as MATLAB variable - 'table' in mat -file.
Anita Fitriani
Anita Fitriani 2020 年 1 月 16 日
This is small part of my wave height data

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

 採用された回答

Andrei Bobrov
Andrei Bobrov 2020 年 1 月 16 日

1 投票

T=readtable('wave height data.xlsx');
[r,rn] = findgroups(T(:,1));
[c,cn] = findgroups(T(:,2));
out = accumarray([r,c],T.WaveHeight,[],@max);
Tout = array2table([rn.Year,out],'VariableNames',[{'Year'};cn.Direction]);

3 件のコメント

Anita Fitriani
Anita Fitriani 2020 年 1 月 17 日
編集済み: Anita Fitriani 2020 年 1 月 17 日
Thankyou so much. It works!
Andrei Bobrov
Andrei Bobrov 2020 年 1 月 17 日
Anita! If my answer solved your problem, then please accept it.
Auwal Adamu Abdullahi
Auwal Adamu Abdullahi 2021 年 8 月 1 日
How do i obtain and tabulate the maximum wave height. Add to that table two separate columns that show the direction and period of each of those yearly maximum wave heights. for 30 years?

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

その他の回答 (1 件)

CAM
CAM 2020 年 1 月 16 日
編集済み: CAM 2020 年 1 月 16 日

0 投票

Use logic statements for each criterion. Use logical "AND" (&) to see which elements meet all criteria. Find the max of those values.
Air Code (untested):
idxC1 = (matrix > criterion1);
idxC2 = (matrix < criterion2);
...
idxOverall = idxC1 & idxC2 & ... & idxCn;
MaxVal = max(matrix(idxOverall));

カテゴリ

ヘルプ センター および File ExchangeData Type Identification についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by