Selecting particular data range from table/ columns

40 visualizzazioni (ultimi 30 giorni)
Hi there,
I am very new to Matlab and haven't been able to find the following solution.
I have two columns within a table of 1537090 x 2. Within the second column I want to extract numbers that fall within a range of 15 to 50.
Any numbers that are found in that range in column 2 I would like the corresponding row from Column 1 to also be pulled out.
The result will be another two column table but have all values within 15 to 50 from Column 2 and the corresponding rows from Column 1.
Thanks very much in advance and really appreciate any help.

Risposta accettata

Star Strider
Star Strider il 18 Apr 2020
Try this:
T1 = table(rand(100,1), randi(75,100,1)); % Original Table
L = table2array(varfun(@(x)((x>=15) & (x<=50)), T1(:,2))); % Logical Vector
T2 = T1(L,:); % Edited Table
.
  10 Commenti
Tyson Campbell
Tyson Campbell il 20 Apr 2020
I reran the code using what you just sent through then and it worked! Temp_Rain_2 resulted in a table of 419751x2. Thanks so much for all your efforts.
Star Strider
Star Strider il 20 Apr 2020
As always, my pleasure!
(That was the same result I got.)

Accedi per commentare.

Più risposte (1)

Sindar
Sindar il 18 Apr 2020
Modificato: Sindar il 18 Apr 2020
idx = (mytable{:,2} >= 15) & (mytable{:,2} <= 50);
newtable = mytable(idx,1:2);
Components of the answer:
  • extract the data in the 2nd column (note {}; () would return a table)
mytable{:,2}
  • identify which elements of this array (i.e. which rows of the table) are >= 15. This returns a logical array (true where >=15, false elsewhere)
(mytable{:,2} >= 15)
  • elementwise AND with the other condition (<=50) so true only in the range
() & ()
  • extract the appropriate rows from the table (and columns, though ":" would work as well if you want all the columns)
mytable(idx,1:2)

Categorie

Scopri di più su Structures in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by