First 2 rows contain the long/lat;third row contains the land/water values. I want to separate the files into land and water xyz files for bathymetry use therfore I need the negative values from the 3rd column and their respective rows. I would like to extract the whole row of data containing negative numbers in any of the columns. It has 9135x3 cells of data. Any idea how to do this?

 Akzeptierte Antwort

KSSV
KSSV am 14 Jun. 2021
Bearbeitet: KSSV am 14 Jun. 2021

0 Stimmen

Let H be your third column.
idx = H<0 ; % get all negative values logical indices
lon1 = lon(idx) ;
lat1 = lat(idx) ;
H1 = H(idx) ;
If A is your data of size 9135x3.
iwant = A(A(:,3)<0,:) ;

7 Kommentare

Gary Ong
Gary Ong am 14 Jun. 2021
I am new to matlab so please pardon me.
I am getting this error,
Undefined operator '<' for input arguments of type 'table'.
KSSV
KSSV am 14 Jun. 2021
Show us the whole code which gave you error.
idx = SG1<0 ;
lon1 = lon(idx) ;
lat1 = lat(idx) ;
h1 = h(idx) ;
Results = SG1(SG1(:,3)<0,:);
this is what I have right now
KSSV
KSSV am 14 Jun. 2021
How you got SG1, lon, lat; thios is what matters for the error.
Gary Ong
Gary Ong am 14 Jun. 2021
Bearbeitet: Gary Ong am 14 Jun. 2021
H = SG1(:,3); % Land/Water Values
J = SG1(:,1); % Longitude
K = SG1(:,2); % Latitude
idx = H<0 ; <===Undefined operator '<' for input arguments of type 'table'.
lon1 = J(idx) ;
lat1 = K(idx) ;
h1 = H(idx) ;
Results = SG1(SG1(:,3)<0,:);
I am not sure if I am doing this right. Please guide me.
SG1 is my 9135x3 data which I imported as table. Do I need to convert it to an array?
H = SG1.(3); % Land/Water Values
J = SG1.(1); % Longitude
K = SG1.(2); % Latitude
idx = H<0 ;
lon1 = J(idx) ;
lat1 = K(idx) ;
h1 = H(idx) ;
Gary Ong
Gary Ong am 14 Jun. 2021
It worked! Thank you for your patience and guidance! @KSSV

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Gefragt:

am 14 Jun. 2021

Kommentiert:

am 14 Jun. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by