split関数でタブ区切りを分割できない
古いコメントを表示
タブ区切りテキストファイルを読み込んで,split 関数で分割したいと考えています.
ためしに1行だけ読ませようとしましたが,うまく分割できません.
infile1='test.txt';
fid=fopen(infile1,'r');
line = fgetl(fid);
dd=split(line,"\t")
ddの結果は,1×1のcell配列となってしまいます.
タブをカンマやスペースに変えて,区切り子をそのように指定するとうまく分割できるのですが.
タブの場合だけうまくできません.
どのような原因が考えられますでしょうか?
4 件のコメント
Akira Agata
2020 年 4 月 13 日
Takeshi Hashimoto
2020 年 4 月 13 日
Akira Agata
2020 年 4 月 13 日
ご指摘のように、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
2020 年 4 月 14 日
回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で 文字と文字列 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!