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

Removing non-unique values and rearranging vectors

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

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

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

我阅读了有关排序 xy here and here 的内容,但我完全没有得到答案。

您可以尝试这样的操作:

% 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)