我在以下模式中有一组值。
A B C D
1 5 6 11
2 6 5 21
3 7 3 42
4 3 7 22
1 2 3 54
2 3 2 43
3 4 3 27
4 3 2 14
我将每一列导出到 MATLAB 工作区中,如下所示。
A = xlsread('F:R.xlsx','Complete Data','A2:A43');
B = xlsread('F:R.xlsx','Complete Data','B2:B43');
C = xlsread('F:R.xlsx','Complete Data','C2:C43');
D = xlsread('F:R.xlsx','Complete Data','D2:D43');
我需要代码方面的帮助,它必须检查 A 列,找到最低的 D 值并输出相应的 B 和 C 值。我需要输出看起来像。
1 5 6 11
2 6 5 21
3 4 3 27
4 3 2 14
我通读了相关问题并理解我需要将其制作为矩阵并根据第 4 列中的元素对其进行排序
排序行
并获取排序元素的索引。但我被困在这里。请指导我。
-
您可以将这些列一次性导出为:
ABCD = xlsread('F:R.xlsx','Complete Data','A2:D43');
-
现在使用
sortrows
根据第一列和第四列对行进行排序。req = sortrows(ABCD, [1 4]);
-
☆如果第一列的所有元素都存在两次,则:
req = req(1:2:end,:);
☆如果第一列的所有元素都不必存在两次,那么:
[~, ind] = unique(req(:,1)); req = req(ind,:);