将OR运算符与Find函数结合使用

时间:2016-07-14 13:50:03

标签: matlab matrix find

我有这部分代码。我想找到两组基站(ABS和RBS)中最近的节点。我这样做的方式是这样的,但find函数给我一个错误。两个距离矩阵具有相同的大小。

closest_dist=min(distance_ua(iduser,:),distance_ur(iduser,:));
closest_node=(find(distance_ua(iduser,:)==closest_dist)) || (find(distance_ur(iduser,:)==closest_dist));

1 个答案:

答案 0 :(得分:2)

find返回一个索引值数组,||仅适用于可以转换为逻辑标量的值。整数数组无法转换为逻辑标量。

[1 2 3] || [1 2 3]
  

操作数到||和&&运算符必须可转换为逻辑标量   值。

如果你想使用逻辑OR,你最好在操作之后使用find ,这将直接在逻辑阵列上执行。此外,您还需要使用|代替||来比较两个逻辑阵列。

closest_node = find(distance_uid(iduser, :) == closest_dist | ...
                    distance_ur(iduser, :) == closest_dist);