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

时间:2015-12-22 12:10:46

标签: matlab matrix find cell-array

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

我尝试使用this link中的答案,我写了这段代码:

0

但它对我没有用,它给了我一个错误:

  

等号左侧的表达式不是作业的有效目标。

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

1 个答案:

答案 0 :(得分:2)

A{1,1}不是单元格数组,它是单元格数组中的一个单元格' A'。但你的问题并不是真的要对单元格数组做任何事情。您的问题是如何仅在矩阵的上三角部分找到全零的索引。您正在寻找的代码是:

idx = triu(B==0)

idx将是逻辑的二维矩阵,在元素为零的任何地方都为true。下三角部分中的所有条目都将为假。您可以使用此矩阵,如

t = B(idx)

将所有零元素作为单个列数组。如果您想以i,j格式获取索引,则必须执行以下操作:

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

我建议在文档中查找triuind2subfind