sách gpt4 ai đã đi

matlab - 如何合并重复值和重复值组并保持顺序?软件

In lại 作者:太空宇宙 更新时间:2023-11-03 20:18:55 29 4
mua khóa gpt4 Nike

我在组合 Matlab“数据”变量的重复元素时遇到问题。我可以使用 unique 和 sort 轻松组合这些值。

[sorted,idx] = sort(data);
[~,ij] = unique(sorted,'first');
Indx = (sort(idx(ij)));

但是,通过这样做,我合并了所有重复的值。我真正想做的是只组合重复元素组。例如:

data = [1;1;1;2;2;2;3;3;3;4;4;4;4;4;3;3;2;2;2;2;1;1;1;1;4;4;4;4;]

合并重复的元素组:

data = [1;2;3;4;3;2;1;4;]

我需要组合重复元素组,同时仍保留顺序。返回索引也会有帮助,因为我需要根据组合索引对另一个变量中的数据进行平均。

Ví dụ:

data = [1;1;1;2;2;2;3;3;3;4;4;4;4;4;3;3;2;2;2;2;1;1;1;1;4;4;4;4;]
data2 = [7;2;4;5;3;4;6;8;5;3;5;7;4;2;4;6;8;4;3;6;7;8;4;2;9;3;2;0;]

dataCombined = [1; 2; 3; 4; 3; 2; 1; 4; ]
data2average = [4.33; 4; 6.33 4.2 5; 5.25; 5.25; 3.5; ]

谁能给点建议?


Giải pháp:

谢谢大家的回答。 MZimmerman6 的解决方案对我来说效果很好。我想展示我为平均“data2”数组中的值所做的工作。

data = [1;1;1;2;2;2;3;3;3;4;4;4;4;4;3;3;2;2;2;2;1;1;1;1;4;4;4;4;];
data2 = [7;2;4;5;3;4;6;8;5;3;5;7;4;2;4;6;8;4;3;6;7;8;4;2;9;3;2;0;];
change = diff(data)~=0;
indices = [1,find(change)'+1];
compressed = data(indices)';


numberOfRepeatingGroups = size(indices);


for i=1:numberOfRepeatingGroups(1,2)


if(i == 1)

dataToAverage = data2(indices(1,1):(indices(1,2)-1));

elseif (i == numberOfRepeatingGroups(1,2))

dataToAverage = data2(indices(1,i):end);

khác

dataToAverage = data2(indices(1,i):(indices(1,(i+1))-1));

kết thúc

data2Averaged(1,i) = mean(dataToAverage(:));

kết thúc


data2Averaged =

4.3333 4.0000 6.3333 4.2000 5.0000 5.2500 5.2500 3.5000

1 Câu trả lời

您可以使用导数来查找数据数组中的波动,这表明分组发生了变化。导数不为 0 的任何地方都会发生变化,无论是正数还是负数。找到这些变化发生的地方,然后抓取相应的索引。如下所示。

data = [1;1;1;2;2;2;3;3;3;4;4;4;4;4;3;3;2;2;2;2;1;1;1;1;4;4;4;4;];
change = diff(data)~=0;
indices = [1,find(change)'+1];
compressed = data(indices)';

结果是

compressed =
1 2 3 4 3 2 1 4

当然,您也可以根据需要使用 indices 变量。

Để ý在第三行,我们添加索引 1,因为从技术上讲,数组的开头是一个变化,然后我们将 1 添加到 find 命令,因为我们在导数上使用 find,所以返回的 change 数组将比原来的短 1。

关于matlab - 如何合并重复值和重复值组并保持顺序?软件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18701900/

29 4 0
太空宇宙
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com