I want to extract rows from my matrix that have a specific value in the second column.

3 visualizaciones (últimos 30 días)
I want to take all of the rows from a matrix that have a 1 in the second column and create a new matrix with these rows.
  1 comentario
Kavita Guddad
Kavita Guddad el 5 de Jul. de 2023
x=[1 2 3 5;2 3 4 5;2 1 3 4;2 1 3 2 ];
y=[];
for i=1:size(x,1)
if (x(i,2)==1)
y=[y;x(i,:)];
end
end
disp(x)
1 2 3 5 2 3 4 5 2 1 3 4 2 1 3 2
disp(y)
2 1 3 4 2 1 3 2

Iniciar sesión para comentar.

Respuesta aceptada

Kavita Guddad
Kavita Guddad el 5 de Jul. de 2023
Hope this code does your job.
x=[1 2 3 5;2 3 4 5;2 1 3 4;2 1 3 2 ];
y=[];
for i=1:size(x,1)
if (x(i,2)==1)
y=[y;x(i,:)];
end
end
disp(x)
disp(y)

Más respuestas (1)

Abhas
Abhas el 5 de Jul. de 2023
Editada: Abhas el 5 de Jul. de 2023
Hi Philip,
We can use logical indexing to select only the rows where the second column has a value of 1. The below code can solve your query:
% Sample input matrix
inputMatrix = [2, 1, 3;
4, 1, 6;
7, 0, 9;
1, 1, 2;
8, 1, 5];
% Find rows with a 1 in the second column
rowsWithOne = inputMatrix(inputMatrix(:, 2) == 1, :);
Hope this helps!

Categorías

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

Etiquetas

Productos


Versión

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by