for loops and creating new vectors

조회 수: 1 (최근 30일)
akk
akk 2019년 1월 25일
편집: Stephen23 2019년 1월 26일
Any help with this is appreciated!
I have a matrix(mytable) that is a 128x3 double, mytable(:,1)=CO2, mytable(:,2)=year mytable(:,3)=month
I also have a matrix(k), that is a 12x2 double, k(:,1)=month, k(:,2)=diffCO2
When a value in mytable(:,3) is equal to k(:,1), I would like to take the value at mytable(:,1) - the value at k(:,2) and produce a new mytable(:,4) with the populated values.
  댓글 수: 1
jahanzaib ahmad
jahanzaib ahmad 2019년 1월 26일
please upload the data file . it will save my time to make data and write code .and thats the best way to get the answer .share ur code coz people like to help with code .

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

채택된 답변

Stephen23
Stephen23 2019년 1월 26일
편집: Stephen23 2019년 1월 26일
You don't need any loops, just use ismember:
>> mytable = [111,11,1;222,22,2;444,44,4;666,66,6;999,99,9]
mytable =
111 11 1
222 22 2
444 44 4
666 66 6
999 99 9
>> k = [2,2222;4,4444;7,7777;9,9999]
k =
2 2222
4 4444
7 7777
9 9999
>> [X,Y] = ismember(mytable(:,3),k(:,1));
>> mytable(X,4) = k(Y(X),2)
mytable =
111 11 1 0
222 22 2 2222
444 44 4 4444
666 66 6 0
999 99 9 9999

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by