How I can search for a variable that sastify two conditions

조회 수: 1 (최근 30일)
Mariela Hernández
Mariela Hernández 2017년 4월 4일
댓글: JohnGalt 2017년 4월 4일
Hi,
I have a "file1" with the variables P1, T1, C1 (the variables size can change from 1x1 to 1x30) and "file2" with P2, T2, C2 (they are standard values, always the variables size is 1x20). I need to calculate x=C1-C2 e.g, I need that matlab search which value of C2 it should use when P1==P2 & T1==T2. They are always values of T1=T2 and P1=P2.
What I am doing is loading both files to bring all the variables to my work space and then:
for ll=1:lenght(file1);
ind=find(T1==T2(ll) & P1==P2(ll));
for i=1:lenght(file1)
C3(ind(i))= C2(ll);
end
end
Error: Index exceeds matrix dimensions. Error in Excel_table (line 63) km_eq(ind(i))= km(ll);
And : Always the first values of C3 is zero, it doesn't matter if the size of the variables is 1x2, or 1x10.
I don't have so much experience Matlabing, any suggestion about how to approach the problem is welcome.
Thanks in advance.
  댓글 수: 1
JohnGalt
JohnGalt 2017년 4월 4일
it looks like the second for-loop condition should be over the length of 'ind'
for i = 1:length(ind)
However, I suspect that the C3 variable is not going to be what you want... Think of a specific example... assume that the first time that T1==T2 and P1==P2 in file1 happens at ind = 10. This means that ind(1) = 10. In the inner for-loop, when i=1 ... you are then setting C(ind(i)) = C2(ll)... with i=1 and ind(1) = 10, this means that line becomes C(10) = C2(ll).
I'm still not sure that this is what will solve your problem... perhaps you should include some example of the data you are analysing...
if i was to guess.. what you want to do is.. .
cInd = 1;
for ll = 1:length(file1)
ind=find(T1==T2(ll) & P1==P2(ll));
if ~isempty(ind)
C3(cInd) = C2(ll);
cInd = cInd+1;
end
end

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

답변 (0개)

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by