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

20 visualizaciones (últimos 30 días)
MathWorks Support Team
MathWorks Support Team el 8 de Ag. de 2022
Comentada: Hernia Baby el 8 de Ag. de 2022
以下のような、空の行を含む 1 列だけのテキストファイルがあります。
(data.txt)
このファイルを readmatrix 関数で読み込むと空の行が読み飛ばされてしまいます。
>> data = readmatrix('data.txt')
data =
1
2
3
4
5
6
空行も保持したままで読み込む方法があれば教えてください。

Respuesta aceptada

MathWorks Support Team
MathWorks Support Team el 8 de Ag. de 2022
今回のように数値データが一列しか定義されておらず、空行を含む場合、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 comentario
Hernia Baby
Hernia Baby el 8 de Ag. de 2022
参考として以下のような場合の対応も書いておきます
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

Iniciar sesión para comentar.

Más respuestas (0)

Productos


Versión

R2022a

Community Treasure Hunt

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

Start Hunting!