我有兩個不同尺寸的向量。爲簡單起見,可以說如何比較兩個具有不同維度的向量來獲取邏輯數組?
A = rand(30, 1);
B = rand(10, 2);
基本上,我想這一點:如果A(i,1)<=B(i,1) & A(i,1)>=B(i,2)
爲真,則做某事。我試圖用於例如i = size(A)的陳述,很明顯,因爲這兩個維度而存在問題。如果有人知道如何解決這個問題,請告訴我。
我有兩個不同尺寸的向量。爲簡單起見,可以說如何比較兩個具有不同維度的向量來獲取邏輯數組?
A = rand(30, 1);
B = rand(10, 2);
基本上,我想這一點:如果A(i,1)<=B(i,1) & A(i,1)>=B(i,2)
爲真,則做某事。我試圖用於例如i = size(A)的陳述,很明顯,因爲這兩個維度而存在問題。如果有人知道如何解決這個問題,請告訴我。
你可以做以下
%# 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,而懶得啓動它;希望能幫助到你。
你要什麼的行爲,當I = 25例如看到,因爲B(25,1)沒有定義? – Dan