Red de conocimiento informático - Material del sitio web - ¿Cómo convertir una matriz de filas que contiene solo 0 1 en la onda rectangular correspondiente?

¿Cómo convertir una matriz de filas que contiene solo 0 1 en la onda rectangular correspondiente?

Independientemente de los aspectos positivos y negativos, este problema es en realidad una transformación a distancia. Así que simplemente puedes usar

b = bwdist(a, "city block")

para lograrlo.

Por supuesto, el resultado obtenido de esta forma es ligeramente diferente a tu Figura 1, que se refleja específicamente en:

El valor en el círculo en 1. b es 1, 2,... no 2, 3. ....

2.El valor en el círculo en B es 0, no 1.

Los valores exteriores del círculo en 3.b son 1, 2,... en lugar de 0, -1,....

En otras palabras, como siempre que el valor dentro del círculo en B El valor sea +1 y el valor fuera del círculo se invierta +1 (no importa si el valor dentro del círculo está invertido). En realidad, esto no es difícil. Por ejemplo, puede usar la función

Rellenar insuficiente

para llenar primero todos los círculos de la imagen con 1 para obtener la imagen c. , tome ~c como subíndice lógico y niegue el valor en a(~c), y luego tome todo el A +1 invertido.