Borrar filtros
Borrar filtros

problem using sortcols()

19 visualizaciones (últimos 30 días)
mehdi J
mehdi J el 19 de Nov. de 2018
Respondida: Jeremy Huard el 31 de En. de 2023
Hi everybody, I have a matrix and I want to sort the colums based on the value of a rows. for example consider A:
A =
24 35 46 23 20 31 30 38 37
10 25 15 10 15 15 5 10 5
I want to extract the matrix B as follow:
B =
30 37 24 23 38 46 20 31 35
5 5 10 10 10 15 15 15 25
I've tried to do it with 'sortcols' order but I've faced with this error "Undefined function or variable 'sortcols'".
How could I fix it?
  1 comentario
Stephen23
Stephen23 el 19 de Nov. de 2018
Editada: Stephen23 el 19 de Nov. de 2018
sortcols is in the Bioinformatics Toolbox. Do you have the Bioinformatics Toolbox installed and a valid license for it? Do you have a DataMatrix object (exactly as the sortcols help states that it requires)?
Your example seems to show a double matrix. Why are you trying to use sortrows on a double matrix? Did you read its help?

Iniciar sesión para comentar.

Respuesta aceptada

Walter Roberson
Walter Roberson el 19 de Nov. de 2018
A = [ 24 35 46 23 20 31 30 38 37
10 25 15 10 15 15 5 10 5];
import bioma.data.*
DM_A = DataMatrix(A);
B = sortcols(DM_A)
  2 comentarios
mehdi J
mehdi J el 19 de Nov. de 2018
what is "bioma.data.*"?
Walter Roberson
Walter Roberson el 19 de Nov. de 2018
The dodocumentation says:
"The DataMatrix constructor function is part of the microarray object package. To make it available, type the following in the MATLAB® command line:
import bioma.data.*
Otherwise, use bioma.data.DataMatrix instead of DataMatrix, in the following syntaxes."
I would suggest that if you are not doing work with the bioinformatics Toolbox that you should not be using sortcols.

Iniciar sesión para comentar.

Más respuestas (1)

Jeremy Huard
Jeremy Huard el 31 de En. de 2023
Even though there is no sortcols function for double matrices, you could transpose A and use the sortrows function before transposing back:
A = [24 35 46 23 20 31 30 38 37;
10 25 15 10 15 15 5 10 5]
A = 2×9
24 35 46 23 20 31 30 38 37 10 25 15 10 15 15 5 10 5
B = sortrows(A',2)'
B = 2×9
30 37 24 23 38 46 20 31 35 5 5 10 10 10 15 15 15 25

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by