gpt4 book ai didi

arrays - Matlab 中的自定义排序数组

转载 作者:太空宇宙 更新时间:2023-11-03 20:02:58 25 4
gpt4 key购买 nike

我有一个包含负数和正数的 double 值数组(例如 -2.5 -4 -6 0 1 -2.4 3 7.1 5 -1)。我想将其分类为较小的连续正数和负数数组
所以从上面的数组中,我想创建 [-2.5 -4 -6 ] [1] [-2.4] [3 7.1 5] [-1]

如何在 Matlab 中实现

最佳答案

这是一种方法:

>> A = [-2.5 -4 -6 0 1 -2.4 3 7.1 5 -1];
>> cellSizes = diff([0 find(diff(A >= 0)) numel(A)]);
>> B = mat2cell(A, 1, cellSizes)

B =

[1x3 double] [1x2 double] [-2.4000] [1x3 double] [-1]

您首先得到一个逻辑数组,其中 A 大于或等于 0。然后使用 DIFFFIND你得到逻辑数组从 0 到 1 或 1 到 0 变化的索引。在该数组的前面添加一个零,将 A 的长度添加到末尾,然后再次取差得到每个正或负段的大小。最后,您可以使用函数 MAT2CELL 将数组分解为更小数组的元胞数组。 .

关于arrays - Matlab 中的自定义排序数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10132161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com