如何比较两个不同维度的向量来获得逻辑数组?

时间:2012-05-03 22:30:18

标签: matlab

我有两个不同尺寸的矢量。为简单起见,我们说

A = rand(30, 1);
B = rand(10, 2);

基本上,我想要这个:如果A(i,1)<=B(i,1) & A(i,1)>=B(i,2)为真,那么就做吧。我试图用于声明,例如对于i = size(A),很明显,因为这两个维度存在问题。如果有人知道如何解决这个问题,请告诉我。

2 个答案:

答案 0 :(得分:2)

您可以执行以下操作

%# find out which array is longer
lenA = size(A,1);
lenB = size(B,1);

minLength = min(lenA,lenB);

%# do vectorized comparison
trueOrFales = all(A(1:minLength)<=B(1:minLength,1)) && ...
    all(A(1:minLength)>=B(1:minLength,2))

答案 1 :(得分:1)

您可能想要做这样的事情

for i = min(size(A), size(B))
   if  A(i,1)<=B(i,1) & A(i,1)>=B(i,2)
然后做点什么。

不熟悉Matlab,懒得启动它;希望它有所帮助。