次元の異なる 2 つのベクトルがあります。簡単にするために、言いましょう
A = rand(30, 1);
B = rand(10, 2);
基本的に、私はこれが欲しいです: A(i,1)<=B(i,1) & A(i,1)>=B(i,2)
true の場合、sth を実行します。i=size(A) などの for ステートメントを使用しようとしましたが、明らかに、2 つの次元のために問題があります。この問題を解決する方法を知っている人がいたら、教えてください。
次元の異なる 2 つのベクトルがあります。簡単にするために、言いましょう
A = rand(30, 1);
B = rand(10, 2);
基本的に、私はこれが欲しいです: A(i,1)<=B(i,1) & A(i,1)>=B(i,2)
true の場合、sth を実行します。i=size(A) などの for ステートメントを使用しようとしましたが、明らかに、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))
あなたはこのようなことをしたいかもしれません
for i = min(size(A), size(B))
if A(i,1)<=B(i,1) & A(i,1)>=B(i,2)
それから何かをします。
Matlab にあまり慣れていないため、開始するのが面倒です。それが役に立てば幸い。