Info
La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.
How to replace elements in a matrix using logical
    4 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
Hello, 
I would like to set some columns to zero for certain rows indicated by a logical. For instance, if we have a matrix X
X =
     1     1     1     1
     2     2     2     2
     3     3     3     3
     4     4     4     4
Suppose I have a logical that is true for row 3 and 4. Then I would like to replace column 3 to 4 with zero for row 3 and 4, so that the result is:
X =
     1     1     1     1
     2     2     2     2
     3     3     0     0
     4     4     0     0
To indicate the columns I want to replace I have tried things like 3:end, or size(B,1):end, but I get a message Subscript indices must either be real positive integers or logicals.
However, even if I only use integers, let's say 3:4, I still get the same message. What am I doing wrong? Thanks for your advice!
0 comentarios
Respuestas (1)
  Ameer Hamza
      
      
 el 19 de Oct. de 2020
        
      Editada: Ameer Hamza
      
      
 el 19 de Oct. de 2020
  
      Try this
X = [
     1     1     1     1
     2     2     2     2
     3     3     3     3
     4     4     4     4];
tf = [false; false; true; true];
X(tf, tf) = 0;
Result
>> X
X =
     1     1     1     1
     2     2     2     2
     3     3     0     0
     4     4     0     0
2 comentarios
La pregunta está cerrada.
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

