我有一个352x11矩阵,由第1列索引,有10个数据点.一些索引值重复出现.我想找到重复的指数并计算重复试验的平均数据点(如果可能,避免循环).
例如,
x =
26 77.5700 17.9735 32.7200
27 40.5887 16.6100 31.5800
28 60.4734 18.5397 33.6200
28 35.6484 27.2000 54.8000
29 95.3448 19.0000 37.7300
30 82.7273 30.4394 39.1400
Run Code Online (Sandbox Code Playgroud)
最终得到:
ans =
26 77.5700 17.9735 32.7200
27 40.5887 16.6100 31.5800
28 48.0609 22.8699 44.2150
29 95.3448 19.0000 37.7300
30 82.7273 30.4394 39.1400
Run Code Online (Sandbox Code Playgroud)
我在想是否使用过
J = find(diff(x(:,1))==0);
Run Code Online (Sandbox Code Playgroud)
为了找到重复值的位置,我可以将函数应用到相应的位置x,但是我从哪里开始?
我有一个22007x3矩阵,第3列有数据,第1和第2列有两个独立的索引.
例如.
x =
1 3 4
1 3 5
1 3 5
1 16 4
1 16 3
1 16 4
2 4 1
2 4 3
2 11 2
2 11 3
2 11 2
Run Code Online (Sandbox Code Playgroud)
当第1列中的值相同且第2列中的值相同时,我需要找到第3列中值的平均值,最终得到如下结果:
ans =
1 3 4.6667
1 16 3.6667
2 4 2
2 11 2.3333
Run Code Online (Sandbox Code Playgroud)
请记住,在我的数据中,第1列和第2列中的值发生的次数可能不同.
我已经尝试过的两个选项是meshgrid/ accumarray选项,使用两个不同的unique函数和一个3D数组:
[U, ix, iu] = unique(x(:, 1));
[U2,ix2,iu2] = unique(x(:,2));
[c, r, j] = meshgrid((1:size(x(:, 1), 2)), iu, iu2); …Run Code Online (Sandbox Code Playgroud) 是否有可能重塑这样的矩阵
x1 =
1 5
3 4
4 3
7 1
Run Code Online (Sandbox Code Playgroud)
变
x2 =
5
NaN
4
3
NaN
NaN
1
Run Code Online (Sandbox Code Playgroud)
反之亦然,其中第一列x1是对应于行#in的索引x2?