How to merge data in mat file?

7 visualizaciones (últimos 30 días)
MIHYUN
MIHYUN el 11 de Nov. de 2014
Respondida: Walter Roberson el 26 de Dic. de 2024 a las 6:24
I have a mat file 'pot1.mat'.
In the mat file, some rows has no data like this image.
So, I want to save the row in which the data exists to other mat file.
Exactly, pot1(a).tr(:,1).
I don't have the idea that How to save.
I'll appreciate if you could help me.
Thank you.

Respuestas (2)

Shuba Nandini
Shuba Nandini el 26 de Dic. de 2024 a las 6:09
Hi,
It is my understanding that you want to retrieve rows from the MAT file where data exists and save them to another MAT file.
To save only the rows of pot1(a).tr(:,1) where data exists to another MAT file, you can run the below code to create a new MAT file:
% Load the MAT file
fileData = load('pot1.mat');
% Get the field name
varNames = fieldnames(fileData);
pot1 = fileData.(varNames{1});
% Initialize a cell array to store data
nonEmptyData = [];
% Loop through each element in pot1
for a = 1:length(pot1)
if ~isempty(pot1(a).tr) % Check if the entry is not empty
% Extract the first column of the data
firstColumn = pot1(a).tr(:,1);
% Append to the nonEmptyData array
nonEmptyData = [nonEmptyData; firstColumn];
end
end
% Save the non-empty data to a new MAT file
save('nonEmptyPot1.mat', 'nonEmptyData');
For more information on how to save the data into the MAT file, kindly refer to the following MathWorks documentation:
I hope this helps!

Walter Roberson
Walter Roberson el 26 de Dic. de 2024 a las 6:24
load pot1
newpot = pot(~arrayfun(@(S)isempty(S.tr), pot));
save('newpot.mat', 'newpot')

Categorías

Más información sobre Low-Level File I/O en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by