找到最大值并返回变量的名称列

29日视图(30天)
你好!
数据:
一个= (1;2;3;4);
B = [5; 4、1、2];
C = (2、3、2, 5);
T =表(A, B, C);
我想有一个函数,检查每一行的最大数量和返回的名称科最大的价值被发现的地方。在这种情况下,它应该返回:B, B, A、C
表只是一个例子,我不介意使用细胞阵列,表或任何其他方式如何处理数据。
附加分:如何确保函数将返回字符接近以防最大的数字会发生多次同一行?

接受的答案

大卫。马塞罗说道
大卫。马塞罗说道 2022年3月15日
编辑:大卫。马塞罗说道 2022年3月15日
清楚,clc
一个= (1;2;3;4);
B = [5; 4、1、2];
C = (2、3、2, 5);
T =表(A, B, C);
[maxval, idx] = max (table2array (T) [], 2);
T.Properties.VariableNames (idx)
ans =1×4单元阵列
{B} {B} {A} {' C '}
关于 额外的点 问题,我认为max函数将默认这么做(即它将返回第一个马克思价值它发现在一个特定的行)。检查这个例如:
清楚,clc
一个= (1,4,3,4);
B = [5; 4、1、2];
C = (2、3、2, 5);
T =表(A, B, C);
[maxval, idx] = max (table2array (T) [], 2);
T.Properties.VariableNames (idx)
ans =1×4单元阵列
{B} {A} {A} {' C '}

答案(1)

克里斯·拉皮埃尔
克里斯·拉皮埃尔 2022年3月15日
调查发现马克斯在第二个维度,并让它返回的loacation max。
然而, 马克斯 与表不工作,所以你需要把你的表到一个数组中使用吗 table2array
您可以创建一个向量包含表变量名。使用索引的最大提取相应的变量名。
varNames = T.Properties.VariableNames

类别

找到更多的在描述性统计帮助中心文件交换

下载188bet金宝搏


释放

R2022a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!