Replace the value in the columns of a matrix

4 vues (au cours des 30 derniers jours)
Mario Marinov
Mario Marinov le 22 Sep 2015
Commenté : Mario Marinov le 22 Sep 2015
In matrix A = [-1 2 3; 4 -5 6; 7 8 -9] order for k1 = 1: size (A, 1) A (k1, find (A (k1,:)> 0, 1, 'first')) = 1 makes replacement of the first positive value in each row 1. If it changes the expression so: for k1 = 1: size (A, 1) A (k1, find (A (k1,:)> 0, 1, 'last')) = 1 will replaced the last positive value in each row. How to do so, to replace the last positive value of 1, but in each column?
  2 commentaires
the cyclist
the cyclist le 22 Sep 2015
Is this a homework problem? It seems a bit hard to believe that you could write the code for doing rows, but not understand how to do it for columns.
Mario Marinov
Mario Marinov le 22 Sep 2015
Not quite so, but thanks!

Connectez-vous pour commenter.

Réponses (1)

Kirby Fears
Kirby Fears le 22 Sep 2015
You can switch the loop to iterate over the columns instead of the rows by changing
k1=1:size(A,1)
to
k1=1:size(A,2)
Then switch the indexing of A similarly, changing
A(k1, find (A (k1,:)> 0, 1, 'last'))
to
A(find(A(:,k1)> 0, 1, 'last'),k1)
  1 commentaire
Mario Marinov
Mario Marinov le 22 Sep 2015
Thank you so much! Work and understand why!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical 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