在matlab中,我有一个非负项的矩阵A. 请参阅以下内容:
A=[0 2 3 5 4 7 8
1 8 2 7 5 2 9
0 1 2 4 8 0 5
2 4 8 6 0 5 8
1 1 2 5 8 3 6];
Run Code Online (Sandbox Code Playgroud)
我想找到所有零元素的邻居期望零元素.这意味着我想在向量v中存储A(1,1),A(2,5),A(3,1),A(3,6),A(4,5)和A(5,1),如果其中一个邻居为零,那么我就不存储它.
元素(i,j)的邻居是指远离(i,j)一个元素的元素,即A(i,j + 1),A(i,j-1),A(i) -1,j),A(i-1,j-1),A(i-1,j + 1),A(i + 1,j),A(i + 1,j-1)和A (i + 1,j + 1).每个元素(i,j)都有7个邻居.
我不存储重复元素.这意味着,如果例如A(1,1)= 0并且A(1,3)= 0并且A(1,2)= 1那么我将仅存储A(1,2)一次.
在我之前的例子中,向量v将是这个:
v=[2 1 8 1 2 4 5 2 9 8 5 5 8 4 6 5 8 3];
Run Code Online (Sandbox Code Playgroud)
如何在没有循环的matlab中做到这一点?
这是我的方阵代码:cl_是矩阵中的零数.ix_是零元素的行索引,iy_是零元素的列索引.
for i_=1:length(cl_) …Run Code Online (Sandbox Code Playgroud)