readmatrix 関数で、空の行を読み​飛ばさずに読み込むこ​とはできますか?

14 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2022 年 8 月 8 日
コメント済み: Hernia Baby 2022 年 8 月 8 日
以下のような、空の行を含む 1 列だけのテキストファイルがあります。
(data.txt)
このファイルを readmatrix 関数で読み込むと空の行が読み飛ばされてしまいます。
>> data = readmatrix('data.txt')
data =
1
2
3
4
5
6
空行も保持したままで読み込む方法があれば教えてください。

採用された回答

MathWorks Support Team
MathWorks Support Team 2022 年 8 月 8 日
今回のように数値データが一列しか定義されておらず、空行を含む場合、readmatrix 関数は空行が不要と判断し、空行を含まない形式で読み込む仕様となっています。
 
代替案として、readlines 関数で全体を string 配列として読み込み、その後、適宜数値配列に変換する方法が考えられます。
>> data = readlines('data.txt') % string 型で全体を読み込み
data =
9×1 string 配列
"1"
"2"
""
"3"
"4"
""
"5"
"6"
""
>> data = double(data) % 数値に変換
data =
1
2
NaN
3
4
NaN
5
6
NaN
  1 件のコメント
Hernia Baby
Hernia Baby 2022 年 8 月 8 日
参考として以下のような場合の対応も書いておきます
filename = 'data.txt';
data = fileread(filename);
data = regexp(data,'\n','split')'
data = 6×1 cell array
{'12←' } {'←' } {'34←' } {'←' } {'56←' } {0×0 char}
data = double(string(data))
data = 6×1
12 NaN 34 NaN 56 NaN

サインインしてコメントする。

その他の回答 (0 件)

製品


リリース

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!