In one loop, sort table and save each matrix in different text files, How?

1 次查看(过去 30 天)
Dear,
I have a big table named sampleU (a simplified table is attached!), with 5 columnes. I would like to have a loop and based on unique values from column Z create matrix for each value and save them in separate text files with different names (U1, U2, U3,....untill U= last Z).
I am aiming for example get the U1 matrix as then save it as U1.txt
U1 =
So far i manage to have the data and unique values but having trouble reading each unique value in a loop and automatecly save them in different .txt files! (The loop is not correct in the code below)
Any suggestions?
data= SampleU % reading the excel table (I have added entire table as data table/ havent read it from Excel)
Z= unique (data.Z);
for ii = 1:Z ; %% need a loop to rad all unique values in Z column
U=?? %% maybe another loop for saving each unique value as U1, U2, U3...
U'ii'=data(data.Z ==Z,:); %%Sort out the sub-matrix as an example for Z=-2 is attached
print( '.txt'); %% Save the sub-matrix as a text
end

采纳的回答

Voss
Voss 2022-12-18
编辑:Voss 2022-12-18
data = readtable('sampleU.xlsx')
data = 41×5 table
X Y Z K1 K2 ___ ___ ___ __________ __________ 15 669 -2 1.2324e-12 9.6817e-20 165 15 -7 1.7428e-12 9.6817e-20 12 154 -2 2.4647e-12 9.6817e-20 10 336 -7 3.4856e-12 9.6817e-20 150 225 -22 4.9294e-12 9.6817e-20 11 222 -27 6.9713e-12 9.6817e-20 222 989 -42 9.8589e-12 9.6817e-20 269 456 -22 1.3943e-11 9.6817e-20 369 369 -42 1.9718e-11 9.6817e-20 222 222 -1 2.7885e-11 9.6817e-20 152 152 -1 3.9435e-11 9.6817e-20 669 669 -2 5.577e-11 9.6817e-20 15 15 -7 7.8871e-11 9.6817e-20 154 154 -2 1.1154e-10 9.6817e-20 336 336 -7 1.5774e-10 9.6817e-20 225 225 -22 2.2308e-10 9.6817e-20
[uZ,~,jj] = unique(data.Z);
for ii = 1:numel(uZ)
% pick a file name for the sub-table (note that %d may not be the
% best format, particularly if data.Z has some non-integer values):
file_name = sprintf('sampleU_z=%d.txt',uZ(ii));
% write the sub-table to file:
writetable(data(jj == ii,:),file_name);
end
% show the names of the new files:
dir('*.txt')
sampleU_z=-1.txt sampleU_z=-2.txt sampleU_z=-22.txt sampleU_z=-27.txt sampleU_z=-42.txt sampleU_z=-7.txt
% check the contents of some of the resulting txt files:
t_test = readtable('sampleU_z=-1.txt')
t_test = 6×5 table
X Y Z K1 K2 ___ ___ __ __________ __________ 222 222 -1 2.7885e-11 9.6817e-20 152 152 -1 3.9435e-11 9.6817e-20 452 222 -1 1.2619e-09 9.6817e-20 365 152 -1 1.7846e-09 9.6817e-20 222 222 -1 4.0382e-08 9.6817e-20 989 152 -1 5.7109e-08 9.6817e-20
t_test = readtable('sampleU_z=-2.txt')
t_test = 7×5 table
X Y Z K1 K2 ___ ___ __ __________ __________ 15 669 -2 1.2324e-12 9.6817e-20 12 154 -2 2.4647e-12 9.6817e-20 669 669 -2 5.577e-11 9.6817e-20 154 154 -2 1.1154e-10 9.6817e-20 369 154 -2 3.5693e-09 9.6817e-20 456 669 -2 8.0764e-08 9.6817e-20 222 154 -2 1.6153e-07 9.6817e-20

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息

标签

产品


版本

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by