How to compare two vectors with different dimensions to get logical array?

2 vues (au cours des 30 derniers jours)
Lei
Lei le 3 Mai 2012
Hello, I have two vectors with different dimensions. To make it simple,lets say A=[775.4; 770.2; 690;...] is n by 1 and B is m by 2: for example, B(1,:)=775.446,774.706. Basically, I want this: if A(i,1)<=B(i,1) & A(i,1)>=B(i,2) is true,then do sth. i tried to use for statement such as for i=size(A),obviously, theres problem because of the two dimensions. If anybody knows how to solve this problem, please let me know. Thanks.
  3 commentaires
Sean de Wolski
Sean de Wolski le 3 Mai 2012
Please provide the expected result for your simple example.
Lei
Lei le 3 Mai 2012
Hi Sean,
Thanks for your help!
Yes,I want to do this for each value of A.
What I want is: if each of the value of A is in the range of row of B ( because each row of my B has two values). Then I do sth else. The reason i did not put the other code is here is that they look complicated.
In my case, my A is 700 by 1 and my B is 30 by 2.
Any of your help will be appreciated!

Connectez-vous pour commenter.

Réponse acceptée

Jan
Jan le 3 Mai 2012
A = rand(10, 1);
B = rand(20, 2);
n = min(size(A, 1), size(B, 1));
R = A(1:n) <= B(1:n, 1) & A(1:n) >= B(1:n, 2);
for i = 1:n
if R(i)
...
end
end
Or:
n = min(size(A, 1), size(B, 1));
for i = 1:n
if A(i) <= B(i, 1) & A(i) >= B(i, 2)
...
end
end
  2 commentaires
Lei
Lei le 3 Mai 2012
Hi Jan,
Thanks for your help!
It works well!
Lei
Lei le 3 Mai 2012
Hi Jan,
What if the size of A is larger than the size of B?
What can I do to solve this problem? Actually,I did not notice this until i tried to run my own code.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by