Matlab - 能够将一个结构的字段分解成几个较小的字段。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab - 能够将一个结构的字段分解成几个较小的字段。相关的知识,希望对你有一定的参考价值。
谢谢您的支持。
我有以下问题需要解决:我测量了一些温度,数值从来没有低于2,我已经做了几次测量。我在matlab上有一个结构的字段,它包含了一个大日志中的所有测量值(见附图)。我想根据数据中看到的条件,把这个日志分成更小的日志。在这种情况下,条件是 "每当温度超过3时,打破日志,并将这块数据放入一个新的字段"。
请你帮我解决这个问题好吗?
如果需要进一步解释说明这个问题,请告诉我。
谢谢您
答案
如果我对问题的理解正确的话,你希望当某个值超过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')
以上是关于Matlab - 能够将一个结构的字段分解成几个较小的字段。的主要内容,如果未能解决你的问题,请参考以下文章
iOS:将大型 XIB 重构为几个较小的 XIB 文件以提高速度