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

2 vues (au cours des 30 derniers jours)
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 commentaire
Kavita Guddad
Kavita Guddad le 5 Juil 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

Connectez-vous pour commenter.

Réponse acceptée

Kavita Guddad
Kavita Guddad le 5 Juil 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)

Plus de réponses (1)

Abhas
Abhas le 5 Juil 2023
Modifié(e) : Abhas le 5 Juil 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!

Catégories

En savoir plus sur Resizing and Reshaping Matrices dans Help Center et File Exchange

Produits


Version

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by