필터 지우기
필터 지우기

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

조회 수: 1 (최근 30일)
Harr
Harr 2022년 12월 18일
댓글: Voss 2022년 12월 18일
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에서 Text Files에 대해 자세히 알아보기

태그

제품


릴리스

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by