我有一個矩陣,想對第 1 列具有相同值的所有列進行平均。例如 A [1 2 3; 1 2 5; 3 2 5] 第 1 列的數字是 1 的兩倍,所以我想要第 1 列的數字為 1 的所有列,這樣結果將是 A_new [1 2 4; 3 2 5]
最簡單的方法是什么?
此外,我希望在這個矩陣中,1 到這個例子 3 之間的每個數字都出現在第 1 列中,并且它應該用 NaN 填充相應的其他列。
所以結果應該是 A_new2 [1 2 4; 2 南南; 3 2 5]
uj5u.com熱心網友回復:
這是 的作業splitapply
,與findgroups
(或unique
)一起:
A = [1 2 3; 1 2 5; 3 2 5];
[g, h] = findgroups(A(:,1)); % or [~, h, g] = unique(10*A(:,1));
result = [h splitapply(@(x)mean(x,1), A(:, 2:end), findgroups(A(:,1)))];
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/426535.html
上一篇:具有符號變數和rref的增強矩陣