How to find the loaction of an element in an array

Say I have two arrays, one for outside temperature and the other for heat rate. All elements in the array line up and correspond to each other. Is there a way that I could get the location of a certain temperature (from the temperature array) and pull the heat value element (from the heat array) that corresponds to that temperature element location? For example:
T=[0 1 2 3]'; Q=[100 200 300 400]';
I'd want to choose T=2 --> which is in the (3,1) position. How can find out the corresponding Q value? I'm doing this because because the arrays are very large and some of the temperatures are the same values and I want to group the Qs for the same temperature. Thanks

 채택된 답변

Matt Fig
Matt Fig 2011년 4월 27일

1 개 추천

T=[0 1 2 3]';
Q=[100 200 300 400]';
Q_T = Q(T==2) % Or, Q(find(T==2)), but not as efficient...
Be aware that if your actual values are not integers, you may need to use a tolerance instead of ==.
If you are grouping using cell arrays, consider:
T = [0 0 1 1 2 2 3 4 5 5].'; % T with some repeats.
Q = [9 6 7 8 8 9 6 6 7 8].';
[J,J,J] = unique(T)
G = accumarray(J(:),Q(:),[],@(x) {x}); % Group Q by unique T...

댓글 수: 4

Same question I want to ask. I understand your answer but I have floating point numbers in my array. How do I use a tolerance instead of == in my if statement.
Naz
Naz 2011년 10월 28일
It's better if you multiply all the values so you have integers (say be a thousand). Then, after you pull the integer just devide by 1000 to get back your float decimal value.
Naz
Naz 2011년 10월 28일
Also, check out 'nearest'. That should do it.
Jan
Jan 2011년 10월 28일
@Neev: Please post a new problem to a new question.
Checking existence with a tolerance has been discussed repeatedly here.
Do you want a relative or absolute tolerance?

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

2011년 4월 27일

Community Treasure Hunt

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

Start Hunting!

Translated by