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中的独特功能。 谢谢!
答案 0 :(得分:1)
假设向量具有相同数量的元素(即H
中的每个值在I
和V
中都有对应的值),一种实现方法是使用{ {3}}获取H
和unique
中分组的索引值,以基于该索引在单元格数组中收集I
和V
值:
>> 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