How to make the following code valid for tables not only matrices

1 view (last 30 days)
hello, The following code finds the peak point for some data stored in an array or matrix lets say.
for ied=1:length(EDP)
imax=[];
[~,imax] = max(EDP(:,7)); %column 7 we have the variable NE8 which we are intrested in finding its maximum
if (EDP(imax,6) < 190 || EDP(imax,6) >400) %column 6 we have the variable GDALT, which is the alttitued
EDP(imax,:)=[];
elseif ( EDP(imax,6) > 190 && EDP(imax,6) < 190) %the range for the altitude of the peak is between 190-400
break;
end
end
How can we modify it such that it would be valid for data that are stored in tables also not only arrays or matrices.

Answers (2)

KSSV
KSSV on 22 Jun 2022
Convert the Table into array using table2array. You can extract any column from table T using T.(1), T.(2) etc....
  2 Comments
Salma fathi
Salma fathi on 22 Jun 2022
thank you for your reply. I have tried doing that and it worked.. but dealing with arrays is giving me sme hard time when trying to do further processing thats why I would like to have it all working for tables since all my data is stored into tables instead of every time converting from table to array. Would that be possible?
KSSV
KSSV on 22 Jun 2022
You can access any column of the table, I have already mentioned it.

Sign in to comment.


Eric Sofen
Eric Sofen on 23 Jun 2022
There are a few ways to rework the indexing to work with tables. By the way, I'm not sure what the loop does (ied doesn't appear in the body of the loop).
[~,imax] = max(EDP.NE8); %column 7 we have the variable NE8 which we are intrested in finding its maximum
if (EDP.GDALT(imax) < 190 || EDP.GDALT(imax) >400) %column 6 we have the variable GDALT, which is the alttitued
EDP(imax,:)=[];
elseif ( EDP.GDALT(imax) > 190 && EDP.GDALT(imax) < 190) %the range for the altitude of the peak is between 190-400
break;
end

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!