Sorting a matrix based on another matrix
Show older comments
I have a csv file with the first two columns being names of individuals and their teams (both of which are strings) and the rest of the columns being a bunch of performance numbers (integers). I used readtable to import the data as it contained both strings and numbers. This is a 20x8 table called 'drivers'.
I then split the table into a 20x2 cell array called 'driver_names' for the names and teams, and a 20x6 double called 'driver_data' for the numbers.
I then did a few different operations on driver_data. What I need to do next is sort both driver_names and driver_data based in ascending order based on one column of driver_data but I'm not able to figure out how to do this.
Parts of the code are as such:
drivers = readtable("Drivers.csv","NumHeaderLines",1);
for j = (1:size(drivers,1))
driver_names(j,1:2) = drivers{j,1:2};
driver_data(j,:) = drivers{j,3:size(drivers,2)};
end
For now, I have sorted driver_data like this:
driver_data = sortrows(driver_data,2)
1 Comment
Stephen23
on 28 Nov 2022
Simpler without the loop:
driver_names = drivers{:,1:2};
driver_data = drivers{:,3:end};
Accepted Answer
More Answers (0)
Categories
Find more on Shifting and Sorting Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!