我想在Simulink中找到二维数组中第一个非零元素的索引,就像我在MATLAB中使用find(u1, 1)
命令一样。
例如,在MATLAB中我会这样做:
u1 = [46.15 61.21; 22.5 45.3; -1 -1; -1 -1; -1 -1];
idx= find(u1<0, 1) % The answer would be: idx = 3
答案 0 :(得分:0)
您可以使用Find
和MinMax
块,如此
输入应该是您的逻辑向量。任何先前的计算都可用于获得此信息。
对于您的示例,您可能希望使用Relational Operator
块来测试<
条件,并使用输出代替上述输入。
Find
块将返回非零元素的所有索引。然后可以使用MinMax
块(设置为最小值)来获得最小的索引。
在使用Logical Operator
之前,您可能希望使用设置为OR的Find
块来测试是否有任何值。如果没有值为真,Find
将返回一个空数组,该数组在输入MinMax
块时将出错。使用If
/ Else If
逻辑可以避免这种情况,如控件流程documentation所示。