Fill a matrix with same values

2 vues (au cours des 30 derniers jours)
Alessandro Masullo
Alessandro Masullo le 20 Oct 2012
Hi! I have a matrix like this:
[ 1 8 9 7 7 4]
[ 0 0 0 0 0 0]
[ 0 0 0 0 0 0]
[ 9 8 6 5 5 1]
[ 0 0 0 0 0 0]
And I want to fill it like this
[ 1 8 9 7 7 4]
[ 1 8 9 7 7 4]
[ 1 8 9 7 7 4]
[ 9 8 6 5 5 1]
[ 9 8 6 5 5 1]
It seems to be very easy, but I cannot realize how to do it. Thank you in advice!

Réponse acceptée

Matt J
Matt J le 20 Oct 2012
Modifié(e) : Matt J le 20 Oct 2012
Another way,
e=find(any(A,2));
[h,b]=histc(1:size(A,1),[e;inf]);
A=A(e(b),:);
  7 commentaires
Matt Fig
Matt Fig le 20 Oct 2012
I knew what you were saying, IA. I agree completely with your main point - a point we have discussed before (but it does bear repeating!).
Cheers!
Azzi Abdelmalek
Azzi Abdelmalek le 20 Oct 2012
+1 to Fig's comment-answer

Connectez-vous pour commenter.

Plus de réponses (3)

Azzi Abdelmalek
Azzi Abdelmalek le 20 Oct 2012
Modifié(e) : Azzi Abdelmalek le 20 Oct 2012
A= [1 8 9 7 7 4
0 0 0 0 0 0
0 0 0 0 0 0
9 8 6 5 5 1
0 0 0 0 0 0]
for k=find(~all(A,2))'
A(k,:)=A(k-1,:)
end

Image Analyst
Image Analyst le 20 Oct 2012
You're all making assumptions of criteria Alex did not give. Making no assumptions whatsoever, this is the fastest way I can think of:
A =[ 1 8 9 7 7 4
1 8 9 7 7 4
1 8 9 7 7 4
9 8 6 5 5 1
9 8 6 5 5 1]

Alessandro Masullo
Alessandro Masullo le 20 Oct 2012
Thank you :D

Catégories

En savoir plus sur Mathematics dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by