Borrar filtros
Borrar filtros

Take only some values from one array

19 visualizaciones (últimos 30 días)
Carmine Schiavone
Carmine Schiavone el 16 de Jul. de 2021
Comentada: dpb el 16 de Jul. de 2021
Hello everybody, I have an array of datas "x" and an array of time "t" that have some dimension like 30000x1, now I need just few values of this array x at some specific times.
I have this array of time called "t1" that is a long list of instants of time like 200x1 and I want to select the value of "x" corresponding only to the instants in "t1".
At the beginning I tryed to do as follows but Matlab says that this can't be done because the matrix dimensions must agree
time= t==t1;
x= x(time);

Respuestas (1)

J. Alex Lee
J. Alex Lee el 16 de Jul. de 2021
you can't compare arrays of different lengths. a straightforward but cumbersome way is to cycle through each of your t1 and find the matches
x1 = nan(size(t1));
for i = 1:numel(t1)
tcheck = t1(i)
mask = (tcheck==t)
if sum(mask)==1
x1(i) = x(mask);
end
end
Or you can use something like ismember to get the locations
[~,idx] = ismember(t1,t)
x1 = x(idx)
if your times in t1 aren't exactly the same as times in t, then you can use "ismembertol"

Etiquetas

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by