split関数でタブ区切りを分割できない
Show older comments
タブ区切りテキストファイルを読み込んで,split 関数で分割したいと考えています.
ためしに1行だけ読ませようとしましたが,うまく分割できません.
infile1='test.txt';
fid=fopen(infile1,'r');
line = fgetl(fid);
dd=split(line,"\t")
ddの結果は,1×1のcell配列となってしまいます.
タブをカンマやスペースに変えて,区切り子をそのように指定するとうまく分割できるのですが.
タブの場合だけうまくできません.
どのような原因が考えられますでしょうか?
4 Comments
Akira Agata
on 13 Apr 2020
Takeshi Hashimoto
on 13 Apr 2020
Akira Agata
on 13 Apr 2020
ご指摘のように、R2016b以降は関数 split が推奨されていますが、少なくとも今回の用途であれば今のところ strsplit でも問題ないと思います。
もしどうしても気になるようであれば、以下のような回避策があります。
① split をそのまま使う方法
dd = split(line); % ddはN×1のセル配列として出力されます。
② regexp を使う方法
dd = regexp(line,'\t','split'); % ddは1×Nのセル配列として出力されます。
③ split で \t を明示的に指定する方法
dd = split(line,sprintf('\t')); % ddはN×1のセル配列として出力されます。
Takeshi Hashimoto
on 14 Apr 2020
Answers (0)
Categories
Find more on 文字と文字列 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!