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

16 vues (au cours des 30 derniers jours)
MathWorks Support Team
MathWorks Support Team le 8 Août 2022
Commenté : Hernia Baby le 8 Août 2022
以下のような、空の行を含む 1 列だけのテキストファイルがあります。
(data.txt)
このファイルを readmatrix 関数で読み込むと空の行が読み飛ばされてしまいます。
>> data = readmatrix('data.txt')
data =
1
2
3
4
5
6
空行も保持したままで読み込む方法があれば教えてください。

Réponse acceptée

MathWorks Support Team
MathWorks Support Team le 8 Août 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 commentaire
Hernia Baby
Hernia Baby le 8 Août 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

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!