How to read text file and put it in to a matrix format.
Mostra commenti meno recenti
My input file input.txt has the following inputs.
input.txt=
a b c d f
a c
a c d f g
a b e h
a c e f
I want input file converted into a matrix format ie.,
input=
[a b c d f
a c 0 0 0
a c d f g
a b e h 0
a c e f 0];
how will do this.
thanks.
Risposta accettata
Più risposte (2)
David Barry
il 9 Nov 2012
0 voti
You should try looking up the functions textread and textscan if you want to do this programatically. Alternatively you can use the data import wizard GUI.
1 Commento
David Barry
il 9 Nov 2012
uiimport will open the wizard or it can be found from the menus.
Andrei Bobrov
il 9 Nov 2012
Modificato: Andrei Bobrov
il 9 Nov 2012
f = fopen('test.txt'); c = textscan(f,'%s','Delimiter','\n');fclose(f);
c2 = c{1}(~cellfun(@isempty,c{1}))
c3 = regexp(c2,'\w*','match')
n = cellfun('size',c3,2);
m = max(n);
c4 = arrayfun(@(x,y)[c3{x},repmat({0},1,mod(-y,m))],(1:numel(n))',n(:),'un',0);
test = cat(1,c4{:});
or
fid = fopen('test.txt');
C = textscan(fid, '%s %s %s %s %s');
fclose(fid);
n = cellfun(@numel,C);
m = max(n);
C1 = cellfun(@(x,y)[x;repmat({'0'},mod(-y,m),1)],C,num2cell(n),'un',0)
Cout = [C1{:}]
Cout(cellfun(@isempty,Cout)) = {'0'}
Categorie
Scopri di più su Text Files in Centro assistenza e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!