簡體   English   中英

如何找到矩陣中與值K元素相鄰的所有值R的元素? -Matlab

[英]How do i find all elements of value R in a matrix that are neighboring an element of value K? - Matlab

我有一個值為1、0和2的矩陣,我希望將與2相鄰的所有零更改為2。 有解決此問題的有效方法嗎?

需要解決的最后一個問題是,我需要對矩陣中一組初始設置為2的所有0進行“着色”。 (運行上述“函數” n ^ 2次),您可以將問題視為一種特殊問題,其中1是矩形網格的受阻位置。

首先定義鄰居。 如果要8個鄰居使用此內核:

kernel = [1 1 1;1 0 1; 1 1 1];

如果要4個直接鄰居使用此內核:

kernel = [0 1 0;1 0 1; 0 1 0];

您可以使用conv2測試點的鄰域是否包含2。

test_neighbors = conv2(A==2, kernel,'same') > 0;

點的值也應該為0

test_A = A == 0;

那么兩個條件都應該滿足:

test = test_neighbors & test_A;

將這些點設置為2

A(test) = 2;

一體:

A(conv2(A==2, kernel,'same') & ~A)=2;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM