How to replace portion of data set with another?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Ibro Tutic
el 12 de Jul. de 2017
Assume you have two 20x20 data sets (just an example). The first column of data contains the time the data was recorded (1,2,3,4,5) and the rest of the data are the values that correspond with that time. What I need to do is take the data from 5 to 10 seconds of one data set (assume this data set is a) and replace the 5 to 10 seconds of the second data set (across all columns, this data set is b), essentially giving me a merged data set.
I think that using indexing might be the best choice (and assuming our data sets are a and b), so something like
find(a(:,1)==5)
find(a(:,1)==10)
Those would give me the two locations of the data, but how would I remove the data from that data set and replace the data in the other?
0 comentarios
Respuesta aceptada
Guillaume
el 12 de Jul. de 2017
Assuming that both matrices have the same number of rows for your 5 to 10 range and that they're in the same order:
b(b(:, 1) >= 5 & b(:, 1) <= 10, 2:end) = a(a(:, 1) >= 5 & a(:, 1) <= 10, 2:end)
is one way of doing it.
2 comentarios
Más respuestas (1)
dbmn
el 12 de Jul. de 2017
One way to solve this would be by logical indexing (assuming both datasets have the same time increment)
% Example data
a=[1:10; rand(10,10)];
b=[1:10; ones(10,10)];
% Find time < 5s
index = a(1,:)<5
% Merge Data
b(:, index) = a(:,index);
2 comentarios
Ver también
Categorías
Más información sobre Resizing and Reshaping Matrices 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!