区间重叠不工作

1 Ansicht(30天)的
Edoardo Modestini
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文件附在这里没有给出足够的信息!
提前感谢任何帮助。

Akzeptierte Antwort

Divyanshu
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 ()的函数参考以下文档:
1 Kommentar
Edoardo Modestini
Edoardo Modestini 2023年我27日麦
你好,
谢谢你!我居然没赶上这个文档/不认为我的价值观有时会倒退。这固定!
Edoardo

Melden您西奇,嗯祖茂堂kommentieren。

Weitere Antworten (0)

Produkte


版本

R2023a

社区寻宝

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

开始狩猎!

翻译的