【问题标题】:Removing non-unique values and rearranging vectors移除非唯一值并重新排列向量
【发布时间】:2016-10-23 05:09:26
【问题描述】:

我使用了斯隆数字巡天 (SDSS) 数据,并获得了this 文件的最终数据产品。第一列是wLength(波形长度),第二列是flux

将零存储在zero_F 变量zero_F = find(a==0) 中,我使用wLength(zero_F)=[];flux(zero_F)=[]; 从两列中删除了它们。我想绘制wLengthfluxflux 依赖于wLengthwLength 包含非唯一值。

如何获取数据中非唯一值的索引,以便从wLengthflux 中删除相应的索引,以使数组大小相同并绘制它们。另外,由于issorted(wLength)返回0,这意味着wLength没有被整理出来,但是整理出来肯定会改变它的值与flux的对应关系,我该如何根据flux排序wLength 值。

我读到了关于排序 xy herehere 的文章,但我完全没有得到答案。

【问题讨论】:

  • 您可以将文件上传到不需要用户名的来源吗?或者更好的是 - 复制并粘贴一些足以重现您的问题的代表性行。如果您还粘贴了完成您描述的所有内容的代码,那么理解(并帮助您)会容易得多 - 您不希望人们将精力浪费在编写您已经编写的内容上,而不是专注于解决您的特定问题对吧?
  • 抱歉,我不知道 Dropbox 对文件共享有这样的限制。您能否推荐我的一些网站,我可以在其中上传我的东西以供在 SO 中使用?

标签: matlab sorting astronomy large-data


【解决方案1】:

你可以试试这样的:

% Get unique values from wLength
[wLengthUn, iUn, ~] = unique(wLength);
fluxUn = flux(iUn);

% Sort the arrays, if needed
[wLengthSrt, iSrt] = sort(wLengthUn);
fluxSrt = fluxUn(iSrt);

% Plot data
plot(fluxSrt, wLengthSrt)

【讨论】:

  • 非常感谢,这很干净,做得很好
猜你喜欢
  • 2013-02-16
  • 1970-01-01
  • 2015-06-14
  • 1970-01-01
  • 1970-01-01
  • 2019-11-04
  • 2012-01-15
  • 1970-01-01
  • 2015-04-06
相关资源
最近更新 更多