Matlab – 能够将一个结构的字段分解成几个较小的字段。

谢谢您的支持。

我有以下问题需要解决:我测量了一些温度,数值从来没有低于2,我已经做了几次测量。我在matlab上有一个结构的字段,它包含了一个大日志中的所有测量值(见附图)。我想根据数据中看到的条件,把这个日志分成更小的日志。在这种情况下,条件是 “每当温度超过3时,打破日志,并将这块数据放入一个新的字段”。

请你帮我解决这个问题好吗?

如果需要进一步解释说明这个问题,请告诉我。

谢谢您

enter image description here

解决方案:

如果我对问题的理解正确的话,你希望当某个值超过3时,将结构的一个字段打散,然后用下面的值创建一个新的字段,直到下一个3。

下面是一个例子。给定

s.Temperature = [1 2 3 4 5 2 3 4 5];

下面的代码。

indx = find(diff(s.Temperature > 3) == 1);
l = length(indx);

for i=1:l
    if i==l
        s = setfield(s,['new_field_', num2str(i)],s.Temperature(indx(i):end));
    else
        s = setfield(s,['new_field_', num2str(i)],s.Temperature(indx(i):indx(i+1) - 1));
    end
end

将生成。

s = 

  struct with fields:

    Temperature: [1 2 3 4 5 2 3 4 5]
    new_field_1: [3 4 5 2]
    new_field_2: [3 4 5]

当你完成后,你可以简单地删除该字段。Temperature:

rmfield(s,'Temperature')

给TA打赏
共{{data.count}}人
人已打赏
解决方案

使用Selenium启动IE后超时

2022-4-21 14:09:12

解决方案

Axios请求在react中处理http请求

2022-4-21 14:09:17

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索