Filter löschen
Filter löschen

for loops and creating new vectors

1 Ansicht (letzte 30 Tage)
akk
akk am 25 Jan. 2019
Bearbeitet: Stephen23 am 26 Jan. 2019
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 Kommentar
jahanzaib ahmad
jahanzaib ahmad am 26 Jan. 2019
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 .

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Stephen23
Stephen23 am 26 Jan. 2019
Bearbeitet: Stephen23 am 26 Jan. 2019
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

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by