How to replace elements in a matrix using logical
Información
La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.
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!
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
Ara Jo
el 19 de Oct. de 2020
Ameer Hamza
el 19 de Oct. de 2020
Can you paste your code which gives error?
La pregunta está cerrada.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!