Replace a value if a condition is met

Hi, I got a little problem and I hoped someone can help me out.
When I have a matrix consisting of 3 columns, I want to replace a value in the third column if a row in the first column has a certain value. For example, I have the following matrix:
A =
3 6 9
2 6 8
3 6 8
Lets call the first column x, the second y and the third z. Now what I want is that when x == 3, than z must become 20.
How can I do this?

 Respuesta aceptada

Akira Agata
Akira Agata el 25 de Nov. de 2018
Please try the following:
idx = A(:,1) == 3;
A(idx,3) = 20;

4 comentarios

Danny Helwegen
Danny Helwegen el 25 de Nov. de 2018
Dear Akira Agata,
thx for the fast response, is it in this way also possible to say if x == 3 and y == 3 than z must become 40?
Image Analyst
Image Analyst el 25 de Nov. de 2018
Editada: Image Analyst el 25 de Nov. de 2018
Of course.
rowsToChange = A(:, 1) == 3 & A(:, 2) == 3;
A(rowsToChange, 3) = 40;
You should really learn how logical indexing works. Since you don't know (yet), you're missing out on one of the most powerful capabilities of MATLAB.
Danny Helwegen
Danny Helwegen el 25 de Nov. de 2018
This works, thank you very much and I will use the tip
Akira Agata
Akira Agata el 25 de Nov. de 2018
> Image Analyst
Thank you for your comment!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Downloads en Centro de ayuda y File Exchange.

Preguntada:

el 25 de Nov. de 2018

Comentada:

el 25 de Nov. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by