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

조회 수: 16 (최근 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!