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

3 Ansichten (letzte 30 Tage)
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.

Akzeptierte Antwort

Matt J
Matt J am 14 Mär. 2024
Bearbeitet: Matt J am 14 Mär. 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

Weitere Antworten (2)

Chunru
Chunru am 14 Mär. 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 am 14 Mär. 2024
Both answers solve my problem! Thanks a lot!

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by