删除非唯一值并重新排列向量

时间:2016-06-21 15:03:06

标签: matlab sorting astronomy large-data

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

将{0}存储在zero_F变量zero_F = find(a==0)中,我使用wLength(zero_F)=[];flux(zero_F)=[];从两列中删除了它们。我想绘制wLength vs fluxflux取决于wLength,但wLength包含非唯一的值。

如何获取数据中非唯一值的索引,以便我可以从wLengthflux中删除相应的索引,以生成相同大小的数组并绘制它们。此外,由于issorted(wLength)返回0,这意味着wLength未被整理出来,但将其排序肯定会改变其值与flux的对应关系,如何我可以根据flux值对wLength进行排序吗?

我读过关于xy herehere的排序,但我没有得到答案。

1 个答案:

答案 0 :(得分: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)