Octave 如何替换MATLAB的时间序列并在倍频程中同步函数?
我有一个MATLAB脚本,我想在八度运行。但事实证明,MATLAB中的时间序列和同步功能尚未在倍频程中实现。所以我的问题是,是否有办法用八度来表达或替换这些函数。 为了理解,我有两个不同行长的文本文件,我希望随着时间的推移将它们同步到一个具有相同行长的文本文件中。文本文件的内容是: 文本文件1: 第1列包含距离 第二列包含时间 文本文件2: 第一列包含角度 第二列包含时间 下面是我在MATLAB中用来同步文件的部分代码Octave 如何替换MATLAB的时间序列并在倍频程中同步函数?,octave,Octave,我有一个MATLAB脚本,我想在八度运行。但事实证明,MATLAB中的时间序列和同步功能尚未在倍频程中实现。所以我的问题是,是否有办法用八度来表达或替换这些函数。 为了理解,我有两个不同行长的文本文件,我希望随着时间的推移将它们同步到一个具有相同行长的文本文件中。文本文件的内容是: 文本文件1: 第1列包含距离 第二列包含时间 文本文件2: 第一列包含角度 第二列包含时间 下面是我在MATLAB中用来同步文件的部分代码 ts1 = timeseries(distance,timed); ts2
ts1 = timeseries(distance,timed);
ts2 = timeseries(angle,timea);
[ts1 ts2] = synchronize(ts1,ts2,'union');
distance = ts1.Data;
angle = ts2.Data;
提前感谢你的帮助
编辑:
下面是一些示例文件
synchronize函数似乎从这里的两个独立时间序列创建了一个公共时间序列,特别是通过它们的并集,然后在这里使用插值“线性”来查找公共时间点处距离和角度的插值值 下面是一个如何实现这一点的示例,以获得与您提供的输出文件相同的倍频程输出 注意:我必须先预处理您的输入文件,用点替换“十进制逗号”,然后用逗号替换“制表符”,使它们成为有效的csv文件 距离t=csvread'input\u Distance.txt',1,0;%跳过标题行 Rotation\u t=csvread'input\u Rotation\u angle.txt',1,0;%跳过标题行 公共_t=并集距离_t:,2,旋转_t:,2; 内插距离=内插距离,2,距离,1,公共距离; 内插旋转=内插旋转,2,旋转,1,公共旋转; 输出=[内插旋转,内插距离]; 输出=sortrows输出,-1;%根据第1列按降序排序 输出=输出~IsaOutput:,2,:;%删除NA条目
请注意,删除NA条目的步骤是必要的,因为我们没有指定在插值步骤中需要外推,并且产生的一些距离值将超出原始时间范围,哪个倍频程标记为NA。您能举一个预期输入和输出的简单示例吗?嗨,我已经在我的问题下添加了一些示例文件。谢谢,这对我来说是有效的,但是对于我来说,sortrows行是不必要的。然而,联合函数在倍频程中的工作方式似乎有点不同,因为与MATLAB相比,我损失了很多点。我在MATLAB中的时间向量点数是MATLAB的两倍。我认为这对我来说不是一个大问题,因为我还有足够的分数要处理。@Marc它不太可能以“不同”的方式工作。也许它保留了重复的时间点,而不是丢弃它们,这正是工会应该做的。