Matlab如何分类并映射IV到唯一的H值

时间:2018-11-13 18:51:07

标签: matlab sorting unique

H = [500500500450450450400400350350350300300300];

I = [-0.0019 -0.0018 -0.0017 -0.0019 -0.0018 -0.0017 -0.0019 -0.0018 -0.0017]

V = [-7.54E-06 -7.23E-06 -6.93E-06 -7.53E-06 -7.21E-06 -6.89E-06 -6.60E-06 -7.50E-06 -7.23E- 06 -6.90E-06]

需要对数据进行排序并获得每个值的IV,但是要忽略它们的值的唯一性,例如,我希望H的所有IV都为400,等等。我知道Matlab中有一个唯一的函数,但这只给我一个唯一的数组元素。有没有办法遍历唯一值以获得IV值?我已经知道Matlab中的独特功能。 谢谢!

1 个答案:

答案 0 :(得分:1)

假设向量具有相同数量的元素(即H中的每个值在IV中都有对应的值),一种实现方法是使用{ {3}}获取Hunique中分组的索引值,以基于该索引在单元格数组中收集IV值:

>> I = [I 0 0 0 0 0]; V = [V 0 0 0 0];  % Pad your sample data with zeroes at the end
>> [Hvalues, ~, index] = unique(H);
>> IV = splitapply(@(x) {x}, [I(:) V(:)], index)

IV =

  5×1 cell array

    [3×2 double]
    [3×2 double]
    [2×2 double]
    [3×2 double]
    [3×2 double]

>> IV{Hvalues == 400}  % I (first column) and V (second column) values for H = 400

ans =

  -0.001900000000000  -0.000006600000000
  -0.001800000000000  -0.000007500000000