Effacer les filtres
Effacer les filtres

How to put different size vectors to one matrix or mat file?

2 vues (au cours des 30 derniers jours)
Djordje Damnjanovic
Djordje Damnjanovic le 13 Mar 2024
Hello everybody, I need help.
After processing some signals I obtain different size vectors that I need to put in one place, and by that I mean one matrix or matfile etc. For example, results are:
d1=1 2 3 4 5 6 7 8
d2=1 2 3 4 5
d3=1 2 3
d4=1
So, I need to combine them into one matrix (or matfile) like this:
d5 =1 2 3 4 5 6 7 8
1 2 3 4 5
1 2 3
1
What I also need is to put ''d5'' to txt file with ";"' at the end of each row. like this:
1 2 3 4 5 6 7 8;
1 2 3 4 5;
1 2 3 ;
1;
Thanks a lot for all suggestions.

Réponse acceptée

Matt J
Matt J le 14 Mar 2024
Modifié(e) : Matt J le 14 Mar 2024
To save to a .mat file
save filename d1 d2 d3 d4
To retrieve them, packaged in a struct variable,
S=load('filename');
To write to a text file,
d={1:8;1:5;1:3;1}; d(:,end)={';'}
for i=1:height(d), writecell(d(i,:), 'outfile.txt', Delim=' ',WriteMode='append'); end

Plus de réponses (2)

Chunru
Chunru le 14 Mar 2024
d1=[1 2 3 4 5 6 7 8];
d2=[1 2 3 4 5];
d3=[1 2 3];
d4=1;
% Use cell array
d5 ={d1; d2; d3; d4}
d5 = 4×1 cell array
{[1 2 3 4 5 6 7 8]} {[ 1 2 3 4 5]} {[ 1 2 3]} {[ 1]}
% you can save d5 as a mat file
save d5.mat d5
dir
. .. d5.mat
% write the data into a text file
fid = fopen("result.txt", "wt");
for i=1:length(d5)
fprintf(fid, " %d", d5{i});
fprintf(fid,";\n");
end
fclose(fid);
type result.txt
1 2 3 4 5 6 7 8; 1 2 3 4 5; 1 2 3; 1;

Djordje Damnjanovic
Djordje Damnjanovic le 14 Mar 2024
Both answers solve my problem! Thanks a lot!

Catégories

En savoir plus sur Data Import and Analysis dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by