区间重叠不工作
1 Ansicht(30天)的
Altere Kommentare anzeigen
Edoardo Modestini
我麦2023
Kommentiert:
Edoardo Modestini2023年我27日麦
你好,
我想创建一个Matlab文件进行影响分析。作为它的一部分,我检查是否存在某些流在一个温度区间。
函数check_present (obj)
%遍历每个区间
为i = 1:长度(obj.intervals)
%创建“礼物”和“名字”
现在= [];
present_names = [];
为k = 1:长度(obj.streams)
%检查如果移位的温度的范围
%重叠的范围流临时工,我认为。
%明显,这部分不工作因为它输出
%错事。
如果重叠(fixed.Interval (obj.streams (k)。罪,obj.streams (k) .Sout), fixed.Interval (obj.intervals(我).Tlow obj.intervals .Thigh(我),“()”))
现在=[礼物;obj.streams (k)];
present_names = [present_names;obj.streams (k) . name];
结束
结束
obj.intervals (i) .present =现在;
obj.intervals (i) .present_names = present_names;
然而,这不是做打算,并输出错误的流在每一个时间间隔。matlab文件附在这里没有给出足够的信息!
提前感谢任何帮助。
0 Kommentare
Akzeptierte Antwort
Divyanshu
我2023年麦19日
嗨Edoardo,
的
原因
你的函数
”
check_present
”
我
年代
显示错误的价值观,因为“
fixed.Interval
()
的函数只生成
年代
时间间隔在1
圣
论点
传递给这个函数是低范围2
nd
一个。
例如。- >
fixed.Interval
(8)会产生间隔
l
eft
- - - - - -
E
' 2 ' &
R
锁定宽和高
- - - - - -
E
nd
“8”。
但在的情况下
fixed.Interval
(7,1)专业
首领一个空的时间间隔。
根据所使用的数据在你的代币
t
年代在某些情况下,流像‘罪’= 390 &“多”
= 110生成。因此在这种情况下函数给出了错误的输出。
这是一个
可能的解决方案
处理这样的情况
年代
:
函数check_present (obj)
%遍历每个区间
为i = 1:长度(obj.intervals)
%创建“礼物”和“名字”
现在= [];
present_names = [];
为k = 1:长度(obj.streams)
leftStr = min (obj.streams (k) .Sin obj.streams (k) .Sout);
rightStr = max (obj.streams (k) .Sin obj.streams (k) .Sout);
streamCur = fixed.Interval (leftStr rightStr);
intervalCur = fixed.Interval (obj.intervals(我).Tlow obj.intervals .Thigh(我),“()”);
如果重叠(streamCur intervalCur)
现在=[礼物;obj.streams (k)];
present_names = [present_names;obj.streams (k) . name];
结束
结束
obj.intervals (i) .present =现在;
obj.intervals (i) .present_names = present_names;
结束
结束
为进一步的细节
fixed.Interval
()的函数参考以下文档: