如何在元胞数组的上三角矩阵中找到零元素的索引

How to find the index of zero elements in upper triangle matrix in a cell array

我想在元胞数组内的矩阵的上三角中找到零元素的索引。假设我有一个元胞数组 A{1,1} 并且里面有一个大小为 19-by-19 的矩阵 B A 的第一个单元格。如何在 B 矩阵的上三角找到 0 元素的索引?

我尝试使用 this link 中的答案并编写了以下代码:

which(upper.tri(Adjecany_Valid_vertices{1,1}) &   Adjecany_Valid_vertices{1,1}==0, arr.ind=TRUE)

但它对我不起作用,它给了我一个错误:

The expression to the left of the equals sign is not a valid target for an assignment.

有人有找到这些请求的零的解决方案吗?

A{1,1}不是元胞数组,它是元胞数组'A'中的一个元胞。但是您的问题实际上与单元阵列无关。您的问题是如何仅在矩阵的上三角部分中找到全零的索引。您要查找的代码是:

idx = triu(B==0)

idx 将是一个二维逻辑矩阵,只要元素为零,该矩阵就为真。下三角部分的所有条目都是假的。您可以像

这样使用这个矩阵
t = B(idx)

将所有零元素作为单列数组获取。如果你想获得 i,j 格式的索引,你必须这样做:

[i,j] = ind2sub(size(B), find(triu(B == 0))) 

我建议在文档中查找 triuind2subfind