remove the zeros in the Matrix
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
dpb
2021-11-19
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.
回答(1 个)
DGM
2021-11-20
If all you want is the intersection of all even rows and columns, just use indexing.
z = randi([1 10],5,10)
x = z(2:2:end,2:2:end)
FWIW, the reason your code doesn't work is because you never reset n
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!