Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 20:41   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 在matlab中排序计时器

好的,这似乎是一个简单的问题,但是我有一个问题,我为每个数据集设置了一个计时器,该计时器设置不正确,结果我的计时变得混乱。有任何更正的想法吗?不会丢失任何数据。例

计时器col理想情况下应为
计时器,我的读
1 3
2 4
3 5
4 6
5 1
6 2

我如何更改第2列或创建类似第1列的新列,而不更改具有数据的其他行的顺序,这只是一个例子,因为我的文件长度为86000长,而且我缺少计时器,我不想错过,这在那个时间段内没有数据。

谢谢

编辑:我不想更改其他列。库仑1是gps计数器,因此由于其他一些问题,它不与comp计时器同步。我只想将第一行更改为从高到低而不影响其他行。还照顾丢失的点(如果我不关心丢失的点,简单的n = 1:最大可以工作。

在这种情况下,缺少计时器指示缺少数据。例如我有4,5,8,9缺少6,7

好的,让我尝试编辑agian的8600x 80数据矩阵:定时器是一行,应该从0到8600,但是定时器在奇数时间启动,所以我从中间开始数据,比如说3400,所以在中间的一天,我的计时器变为0,然后又回到1。但是其他行都没问题。我只需要2个基于计时器的其他集合作为时间。我不能使用T = 1:length(file),因为它会忽略错过的时间戳(计时器)

例如我的数据显示为
计时器,我的读
1 3
2 4
3 5
4 8
5 9
8 1
9 2

这样您可以看到缺少6,7的时间戳。如果我使用n = 1:length(file)我会得到1 2 3 4 5 6 7这是错误的我想要1 2 3 4 5 8 9

而不更改其他行的顺序,因此我无法对整个文件使用排序。



回答:

我认为以下问题

数据说

3 100 4 101 5 102 NaN 0 1 104 2 105 你要

1 100 2 101 3 102 NaN 0 4 104 5 105 我会解决这样的问题:

%# create test data data = [3 100 4 101 5 102 NaN 0 1 104 2 105]; %# find good rows (if missing data are indicated by zeros, use %# goodRows = data(:,1) > 0; goodRows = isfinite(data(:,1)); %# count good rows nGoodRows = sum(goodRows); %# replace the first column with sequential numbers, but only in good rows data(goodRows,1) = 1:nGoodRows; data = 1 100 2 101 3 102 NaN 0 4 104 5 105 编辑1

也许这次我明白你的问题

数据说

4 101 5 102 1 104 2 105 你要

1 4 101 2 5 102 4 1 104 5 2 105 这可以通过以下方式实现

%# test data data = [4 101 5 102 1 104 2 105]; %# use sort to get the correct order of the numbers and add it to the left of data out = [sort(data(:,1)),data] out = 1 4 101 2 5 102 4 1 104 5 2 105 编辑2

请注意, out是EDIT 1中解决方案的结果

似乎您想对数据进行绘制,以便没有缺少值的条目。一种方法是用点绘制图-不会出现丢失数据的点。

plot(out(:,1),out(:,3),'.') 如果你想绘制该被中断的线路,你要插入的NaN到out

%# create outNaN, that has NaN-rows for missing entries outNaN = NaN(max(out(:,1)),size(out,2)); outNaN(out(:,1),:) = out; %# plot plot(out(:,1),out(:,3))

更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 00:39


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.