找到'name'而不是包含最大值matlab的变量的值

时间:2015-04-23 06:49:30

标签: matlab

假设我们有30个变量,我正在寻找一种方法来找到哪个值保持最大值。我需要它的“名称”,而不是它的价值。 例如:

I1=10
I2=12
I3=14
I4=90
I5=5
I6=90

如何对返回'I4'和'I5'的函数进行编码。不仅仅返回90。

一种方法是首先找到最大值然后通过比较每个变量我们可以找出变量的名称。但是,如果我们有很多变量,这就没有效率。有人有想法吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

使用cell数组做这类事情要好得多,但无论如何你可以这样做:

names = who('-regexp', 'I[0-9]+');
values = cellfun(@eval, names);
maxValue = max(values);
maxNames = names(values == maxValue)