How to read text file and put it in to a matrix format.
古いコメントを表示
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.
採用された回答
その他の回答 (2 件)
David Barry
2012 年 11 月 9 日
0 投票
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 件のコメント
David Barry
2012 年 11 月 9 日
uiimport will open the wizard or it can be found from the menus.
Andrei Bobrov
2012 年 11 月 9 日
編集済み: Andrei Bobrov
2012 年 11 月 9 日
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'}
カテゴリ
ヘルプ センター および File Exchange で Text Files についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!