How to read text file and put it in to a matrix format.
Afficher commentaires plus anciens
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.
Réponse acceptée
Plus de réponses (2)
David Barry
le 9 Nov 2012
0 votes
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 commentaire
David Barry
le 9 Nov 2012
uiimport will open the wizard or it can be found from the menus.
Andrei Bobrov
le 9 Nov 2012
Modifié(e) : Andrei Bobrov
le 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'}
Catégories
En savoir plus sur Text Files dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!