说 A =兰特(2,2,2); [a,b,c] = find(A == A(1,2,2))
我得到了 a = 1时 B = 4 C = 1什么?
答案 0 :(得分:5)
答案 1 :(得分:0)
使用等式==
代替赋值运算符=
。
A = rand(2,2,2); [a,b,c] = find(A == A(1,2,2))
请参阅FIND的文档。输出参数不适用于所有方向,仅适用于行和列。似乎MATLAB沿第二个方向连接第三个方向并返回第四列。最后一个参数等于1,因为你只有一个匹配。
答案 2 :(得分:0)
FIND函数的输出是两组索引(a
和b
)以及这些索引的值(c
)。对于大于2维的矩阵,第二个索引将是linear index。
在您的示例中,您在执行A == A(1,2,2)
时创建逻辑数组。此逻辑数组在索引1
处具有值true
(即(1,2,2)
),将传递给FIND函数。此非零值的位置在矩阵的第一行(输出a = 1
)和剩余维度内的第四个线性索引(输出b = 4
)。 1
输出c
的非零值。
答案 3 :(得分:0)
查找仅在您尝试将其应用于二维数组时有效。
在Matlab Central上有一些可以执行n维数组的函数。