picking maximum difference across entries of row vectors, Part 3

1 回表示 (過去 30 日間)
alpedhuez
alpedhuez 2018 年 6 月 6 日
The question is
for each row, take a difference between every possible pair of two elements in the row and returns the maximum difference
Now A can have missing values. For example, A =[ NaN NaN 3 9 4]. In this case the previous solution
vec = sort(A);
B = vec(end)-vec(1);
does not return a correct answer 6. Please advise.
  2 件のコメント
alpedhuez
alpedhuez 2018 年 6 月 6 日
Suppose I replace NaN by -infty. Then the problem would be about taking the difference between max and min among nonzero elements for each row.
alpedhuez
alpedhuez 2018 年 6 月 7 日
編集済み: alpedhuez 2018 年 6 月 7 日
I can run a loop for each row calculates
max(D(i,:),[],'omitnan')-min(D(i,:),[],'omitnan');
but would hope simpler code.

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

採用された回答

Kaushik Lakshminarasimhan
Kaushik Lakshminarasimhan 2018 年 6 月 7 日
A = [NaN NaN 3 9 4 ; 1 100 NaN 34 12];
maxdiffs = max(sort(A,2),[],2) - min(sort(A,2),[],2);

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by