小编8ea*_*ast的帖子

MATLAB查找并应用函数到重复索引的值

我有一个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,但是我从哪里开始?

matlab matrix mean

1
推荐指数
1
解决办法
2605
查看次数

MATLAB使用两个不同的索引找到矩阵中的列的平均值

我有一个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)

matlab loops mean

1
推荐指数
1
解决办法
1600
查看次数

MATLAB重塑矩阵将索引转换为行索引

是否有可能重塑这样的矩阵

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

matlab matrix reshape

1
推荐指数
1
解决办法
626
查看次数

标签 统计

matlab ×3

matrix ×2

mean ×2

loops ×1

reshape ×1