Deleting certain columns in a matrix

110 visualizaciones (últimos 30 días)
Mate 2u
Mate 2u el 15 de Jul. de 2012
Comentada: Craig Champlin el 5 de Dic. de 2019
Hi all,
I have a 267x34 matrix. Now I want to delete certain columns within MATLAB.
For instance if I want to delete the 3rd column, 4th column, 8th column, 14th column and 33 column. How would I write this in a code where they all get delete simultaneously?
Thanks,
  2 comentarios
Mayank Malaviya
Mayank Malaviya el 2 de Sept. de 2016
Editada: Mayank Malaviya el 2 de Sept. de 2016
B = horzcat(A(1:end,1:n-1),A(1:end,n+1:end)); % A is your matrix and n is the column which is to be removed
Fabian Lischka
Fabian Lischka el 26 de Nov. de 2018
FWIW, above comment from 2016-09-02 does not address the question (deleting multiple columns), and is furthermore possibly a fairly inefficient way of doing what it does (deleting one column).

Iniciar sesión para comentar.

Respuesta aceptada

Walter Roberson
Walter Roberson el 15 de Jul. de 2012

Más respuestas (1)

Reza Zakernejad
Reza Zakernejad el 12 de Oct. de 2017
Editada: Reza Zakernejad el 12 de Oct. de 2017
A(:,[m n p...])=[]; % A input matrix and m n p are #columns to be deleted
  1 comentario
Craig Champlin
Craig Champlin el 5 de Dic. de 2019
Not sure why this is not the "Accepted Answer". It does exactly what I want to. I have several column indexes of outliers which I found by comparing against a threshold. Using this answer, I can simply put my list into the [] and poof outliers are gone.
outliers = find (errorDist > thresholdValue); % list of outliers
M(:,outliers) = []; % *poof!* clean matrix

Iniciar sesión para comentar.

Categorías

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

Community Treasure Hunt

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

Start Hunting!

Translated by