在满足另一个矩阵的条件后找到一个矩阵的第一个值

时间:2014-04-19 13:11:32

标签: arrays matlab matrix conditional-statements

请帮我解决这个问题...

a = [1 2 3 4 5 6 7 8 9 10]  
b = [12 4 13 7 5 7 8 10 3 12]  
c = [4 5 3 2 6 7 5 3 4 5]

我必须在a上找到第一个值,如果b上的值小于10且超过3个连续位置,则索引开始满足条件。在找到相同索引的c值后,b的值也是。

Ans应该是b=4的索引,a=4的索引以及value for a =4c=2

提前谢谢

2 个答案:

答案 0 :(得分:1)

您可以使用strfind作为一种方法 -

str1 = num2str(b <10,'%1d') %%// String of binary numbers
indx = strfind(['0' str1],'0111') %%// Indices where the condition is met
ind = indx(1) %%// Choose the first occurance
a_out = a(ind) %%// Index into a
c_out = c(ind) %%// Index into c

输出 -

ind =
     4

a_out =
     4

c_out =
     2

答案 1 :(得分:0)

要查找低于阈值的连续值的给定数量,您可以将conv应用于0 - {{的向量1}}比较产生的值:

1