0

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

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

基本上,我想要这个:如果A(i,1)<=B(i,1) & A(i,1)>=B(i,2)是真的,那么做某事。我尝试使用 for 语句,例如 for i=size(A),显然,由于两个维度,存在问题。如果有人知道如何解决这个问题,请告诉我。

4

2 回答 2

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))
于 2012-05-03T22:54:34.227 回答
1

你可能想做这样的事情

for i = min(size(A), size(B))
   if  A(i,1)<=B(i,1) & A(i,1)>=B(i,2)

然后做事。

对Matlab不是很熟悉,懒得上手;希望能帮助到你。

于 2012-05-03T22:40:16.500 回答