How to write a matrix based from three columns of data using the first two columns as references?

13 visualizaciones (últimos 30 días)
What's the best way to transform the following data into an array/ into an origin-destination matrix?
My original data somewhat look like the ones below:
The first column is the origin, second column is the destination, and the third column is the number of trips. (Please note that the dataset is also not sorted yet.)
The output should be the data from the third column only (number of trips), and arranged in a way that the rows is ordered with respect to the first column (origin) and the columns is ordered with respect to the second column (destination) of the original dataframe.
The output should look like the ones below (only the ones highlighted in yellow):
My data is already loaded in Matlab. Excel screenshots are for illustration purposes only of how I want to manipulate the data.

Respuesta aceptada

Image Analyst
Image Analyst el 10 de Nov. de 2019
Editada: Image Analyst el 10 de Nov. de 2019
I believe this should work:
% Create sample data because the poster forgot to include code to generate it.
[orig, dest] = meshgrid(1000:1002, 1000:1004)
numTrips = randi(9, length(dest(:)), 1)
odTrips = [orig(:), dest(:), numTrips] % Stitch together to form a 2-D matrix.
% Now we have the missing data and we can begin:
% Extract out the columns we need from the 2-D array.
orig = odTrips(:, 1)
dest = odTrips(:, 2)
numTrips = odTrips(:, 3)
% Figure out how many rows and columns there should be.
rows = length(orig) / length(unique(dest))
columns = length(dest) / length(unique(orig))
% Now reshape
numTrips = reshape(numTrips, rows, columns)
You'll see
odTrips =
1000 1000 1
1000 1001 1
1000 1002 4
1000 1003 6
1000 1004 7
1001 1000 5
1001 1001 1
1001 1002 6
1001 1003 2
1001 1004 2
1002 1000 1
1002 1001 2
1002 1002 2
1002 1003 2
1002 1004 3
1003 1000 3
1003 1001 2
1003 1002 3
1003 1003 9
1003 1004 7
1004 1000 6
1004 1001 2
1004 1002 2
1004 1003 1
1004 1004 9
rows =
5
columns =
5
numTrips =
1 5 1 3 6
1 1 2 2 2
4 6 2 3 2
6 2 2 9 1
7 2 3 7 9

Más respuestas (0)

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by