Vous suivez désormais cette soumission
- Les mises à jour seront visibles dans votre flux de contenu suivi
- Selon vos préférences en matière de communication il est possible que vous receviez des e-mails
As an example, suppose you had taken 155 seconds of data of the location (x,y,z) of a particle as a function of time (t). It is convenient to put that all into a struct, such as this one:
>> data
data =
t: [155000x1 double]
x: [155000x1 double]
y: [155000x1 double]
z: [155000x1 double]
If you wanted to extract the data taken between 15 and 20 seconds, you would normally need to type
index = find((data.t > 15) & (data.t < 20));
cut_data.t = data.t(index);
cut_data.x = data.x(index);
cut_data.y = data.y(index);
cut_data.z = data.z(index);
Tedious, and prone to typos! Using the function "struct_cut" you can do the same thing by just typing
index = find((data.t > 15) & (data.t < 20));
cut_data = struct_cut(data,{'t','x','y','z'},index);
If you want to apply different cuts to each element of the structure, just type
cut_data = struct_cut(data,{'t','x','y','z'},{i_t,i_x,i_y,i_z});
where "i_t", "i_x", etc are four different cut arrays you make elsewhere.
I tested this with ~10-100 megabyte data sets, and it runs really fast. Hopefully it will work well for larger arrays also, please let me know!
Citation pour cette source
Sean Bryan (2026). Structure Cut (https://fr.mathworks.com/matlabcentral/fileexchange/29074-structure-cut), MATLAB Central File Exchange. Extrait(e) le .
Informations générales
- Version 1.0.0.0 (1,56 ko)
Compatibilité avec les versions de MATLAB
- Compatible avec toutes les versions
Plateformes compatibles
- Windows
- macOS
- Linux
| Version | Publié le | Notes de version | Action |
|---|---|---|---|
| 1.0.0.0 |
