我怎么比较值的单元阵列值在另一个数组中,并将相应的列?

1视图(30天)
你好,
我有一个单元阵列 newdata 。每个单元格都包含两列。第一个包含秒,第一列包含值。
我有第二个数组 split_points_rounded 包含四个列。列包含值(秒),对应于截止点。在每一行 split_points_rounded 对应于一个细胞中 newdata
我想做的是遍历每个细胞 newdata 和将列根据截止点 split_points_rounded 。五个结果列表的值应该保存在一个新的单元阵列 split_newdata
比如,如果在第一行的值 split_points_rounded 将100年、200年、300年和400年的那列的第一个单元格 newdata 将产生5个列表。
1)第一个值的列的值100。
2)从100年价值价值200。
3)从200年价值价值300。
4)从300年价值价值400。
5)从价值400的最后一个值列。
我觉得这应该不是太困难但我有困扰的逻辑。我需要先编写一个脚本记录中的值的行吗 newdata 中的值相匹配 split_points_rounded 吗?
谢谢你的帮助!

接受的答案

沃斯
沃斯 2022年12月10日
负载newdata
负载split_points_rounded
N =元素个数(newdata);
split_newdata =细胞(1,N);
2 = 1:N
temp =重塑([newdata {2} {:}], [], 2);
idx =离散化(临时(:1),[0 split_points_rounded (ii):)正]);
split_newdata {2} = groupsummary(临时(:,2)、idx @ (x) {x});
结束
%检查结果:
split_newdata
split_newdata =1×5单元阵列
{5×1细胞}{5×1细胞}{5×1细胞}{5×1细胞}{5×1细胞}
split_newdata {:}
ans =5×1单元阵列
{127×1双}{10×1双}{56×1双}{423×1双}{57×1双}
ans =5×1单元阵列
{67×1双}{16×1双}{63×1双}{823×1双}{13×1双}
ans =5×1单元阵列
{196×1双}{24×1双}{224×1双}{112×1双}{113×1双}
ans =5×1单元阵列
{228×1双}{16×1双}{48×1双}{288×1双}{225×1双}
ans =5×1单元阵列
{236×1双}{48×1双}{172×1双}{1244×1双}{209×1双}
3评论

登录置评。

更多的答案(0)

类别

找到更多的在数据类型帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的