Borrar filtros
Borrar filtros

Deleting multiple rows based on a specific condition

6 visualizaciones (últimos 30 días)
Hi all,
I am working on a water network. I got a big matrix 381x12527 (time vs node's quality concentration) even for times that I am not interest in. So I want to delete the matrix rows for which the difference between two consecutive rows is not equal to 3600 (see yellow rows in Figure).
I would appreciate if anyone could help me, thanks!
Stefania

Respuesta aceptada

KALYAN ACHARJYA
KALYAN ACHARJYA el 28 de Feb. de 2021
Editada: KALYAN ACHARJYA el 28 de Feb. de 2021
Lets say data1 is the column time data
diff_data=diff(data1);
idx_delete=find(diff_data~=3600)+1;
% +1 for compensate with next
% Do modify accordingly
Once get the rows numbers, which to be deleted
matrix(idx_delete,:)=[]
Or:
matrix(~mod(data1,3600)==0,:)=[]
It gives the all those numbers, which are non divisible by 3600
  2 comentarios
Stefania Avvedimento
Stefania Avvedimento el 28 de Feb. de 2021
thank you Kalyan Acharjya for helping me :)
KALYAN ACHARJYA
KALYAN ACHARJYA el 28 de Feb. de 2021
I'm glad it helped
:)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Multidimensional Arrays en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by