I have here two data sets, one I want to use as my X and the other the Y axis.
For the X, which is my TNF placeholder values below, I want to simply sort the data array from least to greatest. Which I already know how to do. The Y values, TPF, are also shown below and correlate specifically to the respective index of the TNF array.
TNF = [e, a, d, c, b]
TPF = [e, a, d, c, b]
Sorted, it looks like:
TNF = [a, b, c, d, e]
So how to I get the TPF values to sort with the TNF values and not independently from least to greatest?

 採用された回答

Star Strider
Star Strider 2018 年 11 月 30 日

1 投票

Ise the second output of the sort function to return the indices, then use those to map ‘TPF’:
TNF = ['e', 'a', 'd', 'c', 'b']
TPF = ['e', 'a', 'd', 'c', 'b']
[TNFsorted, idx] = sort(TNF);
TPFsorted = TPF(idx)

4 件のコメント

Jacob Davidson
Jacob Davidson 2018 年 12 月 1 日
編集済み: Jacob Davidson 2018 年 12 月 1 日
Alright, that made sense when I read it. I tried it, however, and I think I'm going about it wrong. Here's what I have:
[TNFSorted, idx] = sort(TNF);
for i = 1:numel(TPF)
TPFSorted(i) = TPF(idx);
end
I'm also receiving the following error:
Unable to perform assignment because the indices on the left side are not compatible with the
size of the right side.
Error in BMITestScript (line 5)
TPFSorted(i) = TPF(idx)
I'm not super experienced with MATLAB and mainly use the documentation here on Mathworks as a guide, so I don't know how to interpret this error very well.
EDIT:
Actually, I did the following without the loop, I was unaware I didn't need to iterate through the entier array to accomplish this. I put in exactly what your code had in the response and it worked perfectly. Thank you so much!
I appreciate your help!
Star Strider
Star Strider 2018 年 12 月 1 日
As always, my pleasure!
Dav
Dav 2020 年 1 月 31 日
Thanks Star.
Star Strider
Star Strider 2020 年 1 月 31 日
@Dav — My pleasure!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by