remove the zeros in the Matrix

1 vue (au cours des 30 derniers jours)
Ali ALATAWI
Ali ALATAWI le 19 Nov 2021
Réponse apportée : DGM le 20 Nov 2021
how to remove the zeros from matrix x??
clear all
clc
n=1;
m=1;
z=randi([1 10],5,10)
for i=1:5
if(mod(i,2)==0)
for j=1:length(z)
if(mod(j,2)==0)
x(m,n)=z(i,j)
n=n+1;
end
end
m=m+1;
end
end
  1 commentaire
dpb
dpb le 19 Nov 2021
Depends on what you mean by "remove". A matrix cannot be anything but a rectangular array, so you simply cannot "remove" elements leaving "holes" in a regular array. A cell array also has to be regular, but it does have the feature that a cell may contain the empty indicator. For a regular numeric array, you can use NaN or Inf as missing value indicators, but you can't not have something in every location.

Connectez-vous pour commenter.

Réponses (1)

DGM
DGM le 20 Nov 2021
If all you want is the intersection of all even rows and columns, just use indexing.
z = randi([1 10],5,10)
z = 5×10
2 7 1 1 2 5 2 6 8 4 1 5 1 4 8 10 1 9 2 9 9 3 5 8 6 6 6 6 5 8 2 2 3 1 8 3 1 9 3 5 4 1 1 8 8 5 6 6 5 7
x = z(2:2:end,2:2:end)
x = 2×5
5 4 10 9 9 2 1 3 9 5
FWIW, the reason your code doesn't work is because you never reset n

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Tags

Produits


Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by