Help using logic to edit table

9 views (last 30 days)
Kristine
Kristine on 8 Apr 2025
Commented: VBBV on 8 Apr 2025

Hi,

I have a table indicating when high and low tides occur. I am trying to split the table in two: creating a table with only high tide information, and another table with only low tide information. There is a column in my main table that has either the letter H or L indicating high or low tides. There might be a better way to do this, and if so please feel free to share — my approach is to duplicate the main table and delete the rows associated with either H or L. I wrote the following code, but it does not work.

for row = 1:height(high_tides)
    if high_tides.High_Low == "L"
       high_tides(:) = []
    end
end

Can someone tell me what I’m doing wrong? Or is there a better way to go about this?

Thank you!

  1 Comment
VBBV
VBBV on 8 Apr 2025
if you want to delete the specfic rows that match "L" then you can use row index as below
for row = 1:height(high_tides)
if strcmp(high_tides.High_Low,"L") % strcmp
high_tides(row,:) = [];
end
end
high_tides

Sign in to comment.

Accepted Answer

Paul
Paul on 8 Apr 2025
T = table(["H";"L";"H";"L"],(1:4).','VariableNames',["Tide","Height"])
T = 4x2 table
Tide Height ____ ______ "H" 1 "L" 2 "H" 3 "L" 4
Thigh = T(T.Tide=="H",:)
Thigh = 2x2 table
Tide Height ____ ______ "H" 1 "H" 3
Tlow = T(T.Tide=="L",:)
Tlow = 2x2 table
Tide Height ____ ______ "L" 2 "L" 4
Or, if you want to duplicate the main table and then delete
Thigh = T;
Thigh(T.Tide=="L",:)=[]
Thigh = 2x2 table
Tide Height ____ ______ "H" 1 "H" 3

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!