Borrar filtros
Borrar filtros

how can I change in a Matrix 4x7 a certain numbers in the Matrix from positive to negative or vise versa by using ind2sub function.

1 visualización (últimos 30 días)
how can I change in a Matrix 4x7 a certain numbers in the Matrix from positive to negative or vise versa by using ind2sub function.
For example:
1 2 3 5 4 5 6
3 9 3 0 29 9 8
57 64 2 5 8 1 9
3 8 3 2 4 7 10
To the negative value when the numbers are less than 10 and vice versa.

Respuesta aceptada

Ameer Hamza
Ameer Hamza el 1 de Oct. de 2020
Editada: Ameer Hamza el 1 de Oct. de 2020
No need to use ind2sub. Just use logical indexing
A(A<10) = -A(A<10);
Another method
idx = find(A < 10);
A(idx) = -A(idx);
And finally: if you really want to use ind2sub()
idx = find(A < 10);
[r, c] = ind2sub(size(A), idx);
for i = 1:numel(r)
A(r(i), c(i)) = -A(r(i), c(i));
end
  3 comentarios
Ameer Hamza
Ameer Hamza el 1 de Oct. de 2020
This is the correct syntax if you want to do it like that.
A(ind2sub([4,7],find(A<10))) = -A(find(A<10));
However, it is an inefficient approach; MATLAB will also give a warning.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Programming en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by